README
¶
Configuration examples for EVCC
Configuration examples for the EVCC EV Charge Controller.
EVCC supports a growing list of chargers, meters and vehicles. See below for detailed configuration.
Additional devices can be configured using the generic
device type and related plugins.
Contributing
If you want to contribute configurations to this repository please open a Pull Request ("PR"). PRs should contain:
- updated or new
yaml
configuration (see https://github.com/mark-sch/evcc-config/tree/master/yaml) - run
make
to generate compilable Go code (configurations are used for testing) and update the README
Chargers
- EVSE DIN (Modbus RTU)
- EVSE DIN (Modbus/TCP)
- EVSE-Wifi
- FritzDECT
- Generic
- Generic (MQTT)
- go-eCharger
- go-eCharger (Cloud)
- i-CHARGE CION (Modbus RTU-over-TCP)
- KEBA Connect
- Mobile Charger Connect (Audi, Bentley, Porsche)
- NRGKick BT (Bluetooth)
- NRGKick Connect
- openWB (MQTT)
- Phoenix EM-CP-PP-ETH Controller (Modbus/TCP)
- Phoenix EV-ETH Controller (Modbus/TCP)
- Phoenix EV-SER Controller (Modbus RTU)
- Shelly
- Tasmota
- TinkerForge WARP Charger
- TP-LINK Smart Plug
- Wallbe (Eco, Pro)
- Wallbe (pre 2019 EV-CC-AC1 controller)
Meters
- Discovergy
- E3DC (Battery Meter)
- E3DC (Grid Meter)
- E3DC (PV Meter)
- Eastron SDM Modbus Meter (RTU)
- Eastron SDM Modbus Meter (RTU-over-TCP)
- Fronius Solar API V1 (Battery Meter/ HTTP)
- Fronius Solar API V1 (Grid Meter/ HTTP)
- Fronius Solar API V1 (PV Meter/ HTTP)
- Fronius Symo GEN24 Plus (Battery Meter)
- Fronius Symo GEN24 Plus (Grid Meter)
- Fronius Symo GEN24 Plus (PV Meter)
- Generic (MQTT)
- Generic (Script)
- Generic SunSpec 3-phase meter via inverter (Grid Meter)
- Generic SunSpec battery inverter (Battery Meter)
- Generic SunSpec PV inverter (PV Meter)
- Kostal Energy Meter via inverter (Grid Meter)
- Kostal Hybrid Inverter (Battery Meter)
- Kostal Inverter (PV Meter)
- Kostal Smart Energy Meter (Grid Meter)
- Multiple DC MPP strings combined (PV Meter)
- Multiple PV inverters combined (PV Meter)
- SMA Sunny Home Manager / Energy Meter (Speedwire)
- SMA Sunny Island / Sunny Boy Storage (Battery Meter)
- SMA SunnyBoy / TriPower / other PV-inverter (PV Meter)
- SolarEdge (Grid Meter)
- SolarEdge Hybrid Inverter (PV Meter)
- SolarEdge StorEdge (Battery Meter)
- Solarlog (Grid Meter)
- Solarlog (PV Meter)
- Sonnenbatterie Eco/10 (Battery Meter/ HTTP)
- Sonnenbatterie Eco/10 (Grid Meter/ HTTP)
- Sonnenbatterie Eco/10 (PV Meter/ HTTP)
- Tesla Powerwall (Battery Meter)
- Tesla Powerwall (Grid Meter)
- Tesla Powerwall (PV Meter)
- vzlogger (HTTP)
- vzlogger (Push Server/ Websocket)
- vzlogger (split import/export channels)
Vehicles
- Audi (eTron etc)
- BMW (i3)
- Ford (Kuga, Mustang, etc)
- Generic
- Generic (Script)
- Generic EV without SoC (Javascript)
- Hyundai (Kona, Ioniq)
- Kia (e-Niro, e-Soul, etc)
- Nissan (Leaf)
- NIU E-Scooter
- Peugeot, Citroen, Opel
- Porsche
- Renault (Zoe)
- Tesla
- VW (e-Up, e-Golf, etc)
- VW ID (ID.3, ID.4, but also e-Golf, e-Up)
Details
Meters
Discovergy
- type: discovergy
user: demo@discovergy.com
password: demo # password
meter: 1ESY1161229886
E3DC (Battery Meter)
- type: custom
power:
source: modbus
uri: e3dc.fritz.box:502
id: 1 # ModBus slave id
register: # manual register configuration
address: 40069
type: holding
decode: int32s
scale: -1 # reverse direction
soc:
source: modbus
uri: e3dc.fritz.box:502
id: 1 # ModBus slave id
register: # manual register configuration
address: 40082
type: holding
decode: uint16
E3DC (Grid Meter)
- type: custom
power:
source: modbus
uri: e3dc.fritz.box:502
id: 1 # ModBus slave id
register: # manual register configuration
address: 40073
type: holding
decode: int32s
E3DC (PV Meter)
- type: custom
power:
source: modbus
uri: e3dc.fritz.box:502
id: 1 # ModBus slave id
register: # manual register configuration
address: 40067 # (40068 - 1) "Photovoltaikleistung in Watt"
type: holding
decode: int32s
Eastron SDM Modbus Meter (RTU)
- type: modbus
model: sdm
device: /dev/ttyUSB0 # serial port
baudrate: 9600
comset: 8N1
id: 1
energy: Sum # only required for charge meter usage
Eastron SDM Modbus Meter (RTU-over-TCP)
- type: modbus
model: sdm
uri: 192.0.2.2:502
rtu: true # serial modbus rtu (rs485) device connected using simple ethernet adapter
id: 1
energy: Sum # this assignment is only required for charge meter usage
Fronius Solar API V1 (Battery Meter/ HTTP)
- type: custom
power:
source: http
uri: http://192.0.2.2/solar_api/v1/GetPowerFlowRealtimeData.fcgi
jq: if .Body.Data.Site.P_Akku == null then 0 else .Body.Data.Site.P_Akku end
soc:
source: http
uri: http://192.0.2.2/solar_api/v1/GetPowerFlowRealtimeData.fcgi
jq: .Body.Data.Inverters."1".SOC
Fronius Solar API V1 (Grid Meter/ HTTP)
- type: custom
power:
source: http
uri: http://192.0.2.2/solar_api/v1/GetPowerFlowRealtimeData.fcgi
jq: if .Body.Data.Site.P_Grid == null then 0 else .Body.Data.Site.P_Grid end
Fronius Solar API V1 (PV Meter/ HTTP)
- type: custom
power:
source: http
uri: http://192.0.2.2/solar_api/v1/GetPowerFlowRealtimeData.fcgi
jq: if .Body.Data.Site.P_PV == null then 0 else .Body.Data.Site.P_PV end
Fronius Symo GEN24 Plus (Battery Meter)
- type: custom
power:
source: calc
add:
- source: modbus
model: sunspec
uri: 192.0.2.2:502
id: 1
value: 160:3:DCW # mppt 3 charge
scale: -1
- source: modbus
model: sunspec
uri: 192.0.2.2:502
id: 1
value: 160:4:DCW # mppt 4 discharge
soc:
source: modbus
model: sunspec
uri: 192.0.2.2:502
id: 1
value: ChargeState
Fronius Symo GEN24 Plus (Grid Meter)
- type: modbus
model: sunspec
uri: 192.0.2.2:502
id: 200
power: 213:W # sunspec meter
Fronius Symo GEN24 Plus (PV Meter)
- type: custom
power:
source: calc
add:
- source: modbus
model: sunspec
uri: 192.0.2.2:502
id: 1
value: 160:1:DCW # mpp 1 pv
- source: modbus
model: sunspec
uri: 192.0.2.2:502
id: 1
value: 160:2:DCW # mpp 2 pv
Generic (MQTT)
- type: custom
power: # power reading
source: mqtt # use mqtt plugin
topic: mbmd/sdm1-1/Power # mqtt topic
timeout: 10s # don't use older values
Generic (Script)
- type: custom
power:
source: script # use script plugin
cmd: /bin/sh -c "echo 0" # actual command
timeout: 3s # kill script after 3 seconds
Generic SunSpec 3-phase meter via inverter (Grid Meter)
- type: modbus
model: sunspec
uri: 192.0.2.2:502
id: 1
power: 203:W # sunspec meter
Generic SunSpec battery inverter (Battery Meter)
- type: modbus
uri: 192.0.2.2:502
id: 1
soc: ChargeState
Generic SunSpec PV inverter (PV Meter)
- type: modbus
uri: 192.0.2.2:502
id: 1
Kostal Energy Meter via inverter (Grid Meter)
- type: custom
power:
source: modbus # use ModBus plugin
uri: 192.0.2.2:1502 # inverter port
id: 71
register: # manual non-sunspec register configuration
address: 252 # (see ba_kostal_interface_modbus-tcp_sunspec.pdf)
type: holding
decode: float32s # swapped float encoding
Kostal Hybrid Inverter (Battery Meter)
- type: modbus
uri: 192.0.2.2:1502
id: 71
power: 802:W
soc: 802:SoC
Kostal Inverter (PV Meter)
- type: modbus
uri: 192.0.2.2:1502
id: 71
Kostal Smart Energy Meter (Grid Meter)
- type: modbus
uri: 192.0.2.2:502
id: 71
Multiple DC MPP strings combined (PV Meter)
- type: custom
power:
source: calc
add:
- source: modbus
model: sunspec
value: 160:1:DCW # SunSpec Model 160 MPP string 1 DCW
uri: 192.0.2.2:502
id: 1
- source: modbus
model: sunspec
value: 160:2:DCW # SunSpec Model 160 MPP string 2 DCW
uri: 192.0.2.2:502
id: 1
Multiple PV inverters combined (PV Meter)
- type: custom
power:
source: calc
add:
- source: modbus
model: sunspec
uri: 192.0.2.2:502
id: 1
- source: modbus
model: sunspec
uri: 192.0.2.3:502
id: 1
SMA Sunny Home Manager / Energy Meter (Speedwire)
- type: sma
uri: 192.0.2.2
SMA Sunny Island / Sunny Boy Storage (Battery Meter)
- type: modbus
uri: 192.0.2.2:502
id: 126
soc: ChargeState
SMA SunnyBoy / TriPower / other PV-inverter (PV Meter)
- type: modbus
uri: 192.0.2.2:502
id: 126
SolarEdge (Grid Meter)
- type: custom
power:
source: modbus
uri: 192.0.2.2:502 # Port 502 (SetApp) or 1502 (LCD)
id: 1
register:
address: 40206 # Meter 1 Total Real Power (sum of active phases)
type: holding
decode: int16
scale: -1
SolarEdge Hybrid Inverter (PV Meter)
- type: custom
power:
source: calc
add:
- source: modbus
model: sunspec
uri: 192.0.2.2:502 # Port 502 (SetApp) or 1502 (LCD)
id: 1
value: 103:DCW
- source: modbus
uri: 192.0.2.2:502 # Port 502 (SetApp) or 1502 (LCD)
id: 1
register:
address: 62836 # Battery 1 Instantaneous Power
type: holding
decode: float32s
SolarEdge StorEdge (Battery Meter)
- type: custom
power:
source: modbus
uri: 192.0.2.2:502 # Port 502 (SetApp) or 1502 (LCD)
id: 1
register:
address: 62836 # Battery 1 Instantaneous Power
type: holding
decode: float32s
scale: -1
soc:
source: modbus
uri: 192.0.2.2:502 # Port 502 (SetApp) or 1502 (LCD)
id: 1
register:
address: 62852 # Battery 1 State of Energy (SOE)
type: holding
decode: float32s
Solarlog (Grid Meter)
- type: custom
power:
source: modbus
uri: 192.0.2.2:502 # IP address of the SolarLog device and ModBus port address
id: 1
register:
address: 3518
type: input
decode: uint32s
Solarlog (PV Meter)
- type: custom
power:
source: modbus
uri: 192.0.2.2:502 # IP address of the SolarLog device and ModBus port address
id: 1
register:
address: 3502
type: input
decode: uint32s
Sonnenbatterie Eco/10 (Battery Meter/ HTTP)
- type: custom
power:
source: http
uri: http://192.0.2.2:8080/api/v1/status
jq: .Pac_total_W
soc:
source: http
uri: http://192.0.2.2:8080/api/v1/status
jq: .USOC
Sonnenbatterie Eco/10 (Grid Meter/ HTTP)
- type: custom
power:
source: http
uri: http://192.0.2.2:8080/api/v1/status
jq: .GridFeedIn_W
scale: -1 # reverse direction
Sonnenbatterie Eco/10 (PV Meter/ HTTP)
- type: custom
power:
source: http
uri: http://192.0.2.2:8080/api/v1/status
jq: .Production_W
Tesla Powerwall (Battery Meter)
- type: tesla
uri: http://192.0.2.2/
usage: battery
Tesla Powerwall (Grid Meter)
- type: tesla
uri: http://192.0.2.2/
usage: grid
Tesla Powerwall (PV Meter)
- type: tesla
uri: http://192.0.2.2/
usage: pv
vzlogger (HTTP)
- type: custom
power: # power reading
source: http # use http plugin
uri: http://demo.volkszaehler.org/api/data/<uuid>.json?from=now
jq: .data.tuples[0][1] # parse response json
vzlogger (Push Server/ Websocket)
- type: custom
power:
source: ws # use websocket plugin
uri: ws://192.0.2.2:8082/socket
jq: .data | select(.uuid=="<uuid>") .tuples[0][1] # parse response json
timeout: 30s
scale: 1
vzlogger (split import/export channels)
- type: custom
power:
source: calc # use calc plugin
add:
- source: http # import channel
uri: http://demo.volkszaehler.org/api/data/<import-uuid>.json?from=now
jq: .data.tuples[0][1] # parse response json
- source: http # export channel
uri: http://demo.volkszaehler.org/api/data/<export-uuid>.json?from=now
jq: .data.tuples[0][1] # parse response json
scale: -1 # export must result in negative values
Chargers
EVSE DIN (Modbus RTU)
- type: simpleevse
device: /dev/ttyUSB0 # serial RS485 interface
EVSE DIN (Modbus/TCP)
- type: simpleevse
uri: 192.0.2.2:502 # Modbus/TCP converter adress
EVSE-Wifi
- type: evsewifi
uri: http://192.0.2.2
FritzDECT
- type: fritzdect
uri: https://fritz.box # FRITZ!Box ip address (local)
user: xxxxxxxxxx # FRITZ!Box username (Has to have Smart Home privileges!)
password: yyyyyyyyyy # FRITZ!Box password
ain: '007788992233' # switch actor identification number without blanks (see AIN number on switch sticker)
standbypower: 15 # treat as charging above this power
Generic
- type: custom
status: # charger status A..F
source: ...
# ...
enabled: # charger enabled state (true/false or 0/1)
source: ...
# ...
enable: # set charger enabled state
source: ...
# ...
maxcurrent: # set charger max current
source: ...
# ...
Generic (MQTT)
- type: custom
status: # charger status A..F
source: mqtt
topic: some/topic1
enabled: # charger enabled state (true/false or 0/1)
source: mqtt
topic: some/topic2
enable: # set charger enabled state
source: script
cmd: /bin/sh -c "echo ${enable}"
maxcurrent: # set charger max current
source: script
cmd: /bin/sh -c "echo ${maxcurrent}"
go-eCharger
- type: go-e
uri: http://192.0.2.2 # go-e ip address (local)
go-eCharger (Cloud)
- type: go-e
token: 4711c # go-e cloud API token
cache: 10s # go-e cloud API cache duration
i-CHARGE CION (Modbus RTU-over-TCP)
- type: custom
status:
source: modbus
uri: 192.0.2.2:502
rtu: true # Modbus over TCP
id: 1
register: # manual register configuration
address: 139 # CP-Status
type: holding
decode: uint16
enabled:
source: modbus
uri: 192.0.2.2:502
rtu: true # Modbus over TCP
id: 1
register: # manual register configuration
address: 100 # Zustand
type: holding
decode: uint16
enable:
source: modbus
uri: 192.0.2.2:502
rtu: true # Modbus over TCP
id: 1
register: # manual register configuration
address: 100 # ein / aus
type: writesingle
decode: uint16
maxcurrent:
source: modbus
uri: 192.0.2.2:502
rtu: true # Modbus over TCP
id: 1
register: # manual register configuration
address: 127 # Strom max
type: writesingle
decode: uint16
KEBA Connect
- type: keba
uri: 192.0.2.2
rfid:
tag: 765765348 # RFID tag, see `evcc charger` to show tag
Mobile Charger Connect (Audi, Bentley, Porsche)
- type: mcc
uri: https://192.0.2.2
password: # home user password
NRGKick BT (Bluetooth)
- type: nrgkick-bluetooth
mac: 00:1E:C0:XX:XX:XX # BT device MAC address (sudo hcitool lescan)
pin: 1234 # App PIN number (write protection, ignore leading zeros)
NRGKick Connect
- type: nrgkick-connect
uri: http://192.0.2.2
mac: 00:1E:C0:XX:XX:XX # BT device MAC address (sudo hcitool lescan)
password: # password
openWB (MQTT)
- type: openwb
broker: 192.0.2.2 # openWB IP
id: 1 # loadpoint id
Phoenix EM-CP-PP-ETH Controller (Modbus/TCP)
- type: phoenix-em-eth
uri: 192.168.0.8:502
meter:
power: true # charge meter connected to controller
energy: true # charge meter connected to controller
currents: true # charge meter connected to controller
Phoenix EV-ETH Controller (Modbus/TCP)
- type: phoenix-ev-eth
uri: 192.168.0.8:502
meter:
power: true # charge meter connected to controller
energy: true # charge meter connected to controller
currents: true # charge meter connected to controller
Phoenix EV-SER Controller (Modbus RTU)
- type: phoenix-ev-ser
device: /dev/ttyUSB0
baudrate: 9600 # configurable (S2/DIP 1)
comset: 8N1
id: 1 # configurable (S2/DIP 2–6)
Shelly
- type: shelly
uri: http://192.168.xxx.xxx # shelly device ip address (local)
channel: 0 # shelly device relay channel
standbypower: 15 # treat as charging above this power
Tasmota
- type: tasmota
uri: http://192.168.xxx.xxx # tasmota device ip address (local)
# user: xxxx # user, (optional) in case user + password are defined
# password: xxxxx # (optional) in case user + password are defined
standbypower: 15 # treat as charging above this power
TinkerForge WARP Charger
- type: warp
broker: 192.0.2.2:1883
topic: warp
useMeter: true # WARP Charger Pro
timeout: 30s
TP-LINK Smart Plug
- type: tplink
uri: 192.0.2.2 # TP-LINK Smart Plug ip address (local)
standbypower: 15 # treat as charging above this power
Wallbe (Eco, Pro)
- type: wallbe
uri: 192.168.0.8:502 # TCP ModBus address
Wallbe (pre 2019 EV-CC-AC1 controller)
- type: wallbe
uri: 192.168.0.8:502 # TCP ModBus address
legacy: true # enable for older Wallbes with Phoenix EV-CC-AC1-M3-CBC-RCM controller
Vehicles
Audi (eTron etc)
- type: audi
title: eTron # display name for UI
capacity: 14 # kWh
user: # user
password: # password
vin: WAUZZZ... # optional
BMW (i3)
- type: bmw
title: i3 # display name for UI
capacity: 65 # kWh
user: # user
password: # password
vin: WBMW... # optional
Ford (Kuga, Mustang, etc)
- type: ford
title: Kuga # display name for UI
capacity: 10 # kWh
user: # user
password: # password
vin: WF0FXX... # optional
Generic
- type: custom
title: Mein Auto # display name for UI
capacity: 50 # kWh
charge:
source: ...
# ...
Generic (Script)
- type: custom
title: Auto # display name for UI
capacity: 50 # kWh
charge:
source: script # use script plugin
cmd: /bin/sh -c "echo 50" # actual command
timeout: 3s # kill script after 3 seconds
cache: 5m # cache duration
Generic EV without SoC (Javascript)
- type: custom
title: My electric vehicle # display name for UI
capacity: 10 # kWh
charge:
source: js
script: 95 // vehicle SoC in %
Hyundai (Kona, Ioniq)
- type: hyundai
title: Kona # display name for UI
capacity: 64 # kWh
user: # user
password: # password
Kia (e-Niro, e-Soul, etc)
- type: kia
title: e-Niro # display name for UI
capacity: 64 # kWh
user: # user
password: # password
Nissan (Leaf)
- type: nissan
title: Leaf # display name for UI
capacity: 60 # kWh
user: # user
password: # password
NIU E-Scooter
- type: niu
title: NIU E-Scooter # display name for UI
capacity: 4 # kWh
user: xxxxxxx # NIU app user
password: xxxxxx # NIU app password
serial: NXXXXXXXXXXXXXXX # NIU E-Scooter serial number like shown in app
Porsche
- type: porsche
title: Taycan # display name for UI
capacity: 83 # kWh
user: # user
password: # password
vin: WP...
Renault (Zoe)
- type: renault
title: Zoe # display name for UI
capacity: 60 # kWh
user: # user
password: # password
vin: WREN... # optional
PSA (Peugeot)
- type: peugeot
title: e-208
capacity: 50 # kWh
user: xxx@mail.de
password:
clientid:
clientsecret:
The clientid and clientsecret needs to be extracted once by using the Peugeot apk: https://github.com/flobz/psa_car_controller
Tesla
- type: tesla
title: Model S # display name for UI
capacity: 90 # kWh
user: # email
password: # password
vin: WTSLA...
VW (e-Up, e-Golf, etc)
- type: vw
title: Golf # display name for UI
capacity: 10 # kWh
user: # user
password: # password
vin: WVWZZZ... # optional
VW ID (ID.3, ID.4, but also e-Golf, e-Up)
- type: id
title: ID.3 # display name for UI
capacity: 50 # kWh
user: # user
password: # password
vin: WVWZZZ... # optional
Documentation
¶
There is no documentation for this package.
Click to show internal directories.
Click to hide internal directories.