Frequently Asked Questions
Configurationβ
Can I use evcc without a grid meter?β
The grid meter is the core of evcc and should be included if possible. However, it is also possible to operate solar-guided charging exclusively on the basis of PV power.
But please note that you won't be able to charge using solar excess energy only, as the calculations required for this are only possible when grid power is known. When configured like this, evcc will charge the vehicle using the current power coming from solar generation.
A typical, medium-sized house's consumption can be specified to attempt to leave some energy for your house - you can do us this using the
residualPower
config flag.
Example:
site:
residualPower: 250 # 250W house consumption
I don't have solar panels, can I still use evcc effectively?β
Possibly! evcc has plenty of uses beyond pure solar diversion. Please note that all of these use cases require a Grid connection meter.
Here's some ideas:
- Automatically charge a vehicle depending on the current price of energy using a variable rate electricity tariff (such as Octopus Energy, Nachtstrom, Tibber, Awatter, etc.) - see Dynamic Tariffs
- Remotely start / stop your charger - especially useful on those chargers that don't have any other remote control interface
- Limit charging your vehicle to a certain state of charge - but please note that having your vehicle configured is essential.
Can I try out evcc without all the components (PV system, charger, ...)?β
Sure! We have a selection of "demo" components that can help fill in gaps.
Can I use evcc without integrating the PV inverter?β
Yes! If there's a grid meter and a controllable charger, then you can use all of evcc's essential functionality - including solar excess charging. Please note that you will be lacking a few visualizations and statistics, including the calculation of solar charging percentage.
Do consider that if you install a retrofitted meter of some kind (such as a Shelly EM) onto your inverter's output cable, you'll get all of the same functionality that you would if you could talk directly to the inverter.
Can I use multiple chargers?β
Yes! Multiple chargers can be added and controlled by evcc at the same time.
However, Load Management across multiple chargers is not supported right now. This is currently in development for a later release.
My charger doesn't support phase switching. Can I still charge single-phase?β
With small PV systems and/or during the winter, it makes sense to use a single phase to make use of any surplus power as efficiently as possible without incurring network losses.
In the case of three-phase chargers that don't support automatic mode switching, you can disconnect phases 2 & 3 on the incoming supply to your charge point using some kind of contactor (e.g Hager HAB304). If full performance is needed, simply switch these phases back on again.
This manual switching should only be done when the vehicle is NOT connected to the charger.
You can also just use a single-phase charging cable in the winter.
Remember to set the charger setting in the evcc UI to single-phase mode. This ways evcc knows when there's enough surpuls to charge the vehicle.
Debuggingβ
Finding syntax errors in evcc.yamlβ
Yaml is very sensitive to syntax - and errors don't always catch the eye straight away. Linters such as (https://onlineyamltools.com/validate-yaml) can be super useful, and are worth checking to find simple mistakes.
Something's not working. What now?β
We have a Community Support forum, with developers and users standing by to help solve common issues.
When making a post, it would be super useful to give as much information as possible on the following:
- As precise an explanation as possible as to what your problem is
- Which devices (vehicles, meters, chargers) are in use?
- Your full, sanitised
evcc.yaml
Helper comamnd (please make sure all usernames, passwords, and other secrets are removed!).
egrep -v '^#|^\s+#' evcc.yaml |grep . |sed -E 's/(password|user|token|url|host|broker|accessToken|refreshToken|vin).*/\1: *****/'
- Alternatively, you can use
evcc dump --cfg >~/config.txt
to create an anonymized configuration file at~/config.txt
.
βοΈ First Aid
We've added a useful helper utility to evcc to help with the above.
By entering evcc discuss
in your terminal, our helper wizard will help you create a new discussion topic in our "Erste Hilfe" (first aid) section.
This discussion will automatically include any relevant error messages, and the anonymized configuration file - you only need to supply a meaningful title and a description of your problem.
This First Aid utility can only be use for the initial creation of a discussion thread. If you need to supply further information to a topic already in progress, you'll need to do this manually.
How do I create a log file for error analysis?β
In its standard configuration, evcc only issues log messages if an error occurs (see also the log
configuration key).
When evcc is started directly from the console, log messages are printed directly to the screen (STDOUT
).
You can test out different parts of your installation using evcc charger
, evcc meter
, and evcc vehicle
. Note that the log level defined in your evcc.yaml
is used with these commands, but you can override it if necessary:
Example: evcc -l debug meter
If evcc is started as a Linux system service (as per Linux Autostart), you should be able to find your logs using the following commands:
- Follow the log in real time
sudo journalctl -fau evcc
- Show the log since the last start of the evcc service (exit with Ctrl+C)
sudo journalctl -u evcc -q
- Save the above log to a file in the home directory
sudo journalctl -u evcc -q > ~/evcc.log
- You can also define a Start (
-s
) and End (-e
) timestamp:sudo journalctl -u evcc -S "2023-03-21 07:00:00" -U "2023-03-21 08:00:00" -q > ~/evcc.log
You might find more useful commands here: wiki.archlinux.org/title/Systemd/Journal
If you're using Docker, you should be able to use docker logs
. See the Docker documentation for more details.
In addition to the console output, there is also the option to view and download the ongoing log in the WebUI. To do this, select the "Logs" menu item in the web menu (top right). There you can also filter by different levels and areas.
However, this log only includes the last 10k lines.
More thoughts on device detectionβ
evcc detect
is a special command that attempts to find compatible hardware on your network.
In particular, it can sometimes help find "new" Sunspec-compatible modbus devices - however, it is more of a developer / support tool for diagnostic purposes, and can't provide detailed results.
Common Errorsβ
Error: Charger out of sync: expected disabled, got enabled
Charger logic error: disabled but chargingβ
evcc expects chargers to have switched to their new state before the next check cycle (after the configured interval
).
Some devices can sometimes react a little slowly to commands - if this happens, that desynchronisation of state is flagged with these error messages.
If you're not experiencing any other issues, these can safely be ignored, or you can try increasing the interval
.
connection refusedβ
This means that the device could be contacted at its given IP address or hostname, but that the device refused to talk to us.
There's a number of possible reasons for this. These ones regularly come up:
- Make sure the target port is set properly in your
evcc.yaml
. - Does the target device have external access enabled? (For example, Solaredge inverters come with modbus disabled from factory)
- The device may have reached the maximum number of simultaneous connections. Other connections (for example, from other home automation systems, or from other instances of evcc) might need to be stopped in order to get evcc connected. We are aware of some devices that only accept a single connection at a time.
- Make sure there's no firewall between you and the target device, and if there is, that it is configured appropriately to allow traffic
i/o timeoutβ
This means the target system didn't respond quickly enough to our request.
Typically this is due to:
- A slow or poor quality network connection (especially when using wireless or Homeplug-style networks)
- Incorrect or poor quality cabling or termination (especially with RS485)
- The target device may be overloaded
- Certain functions requested by evcc from the device may be unavailable (sometimes this is due to outdated firmware or improperly set configuration on the target)
- evcc's timeout or query
interval
is set too short
/tmp/evcc: operation not permitted
bind: address already in useβ
This error happens if evcc is already running (for example, as a service) and you attempt to launch it again. Only one instance of evcc should be running at a time.
You can use a program such as htop
to help you diagnose whether another instance of evcc is running in the background.
If you do have a reason to use evcc at the terminal, make sure to stop the service (for example, with systemctl stop evcc
) beforehand.
The evcc UI isn't accessible, but I can access it when in Demo Mode.β
It's not uncommon for errors to be overlooked in the configuration, saved, and then evcc restarted to have any changes take effect. When this happens, evcc will fail to launch, and the UI won't be accessible.
To help diagnose the problem, run evcc
directly from the terminal - this should hopefully give you a better idea of what's going on.
Chargingβ
Vehicle starts charging when plugged in, even though there's no surplusβ
Some chargers start charging as soon as the car is plugged in, or when an RFID card is presented. This behaviour can't always be influenced by evcc, but evcc does recognise this and stops the charging after a short time.
Solar Production in Winterβ
In the winter months, solar production is often regularly below the configured minimum. In order to get as much energy into the Vehicle as possible, you can try some of the following tips and tricks:
Using residualpower
β
In the configuration under the site
flag, set residualPower
to a negative value. This determines how much power the grid can supply to nudge your solar production up enough to cover the minimum. Changes are possible via the API.
Exmaple:
site:
residualPower: -1000 # 1000W grid cover in Solar mode
The disadvantage of this solution is that the grid power is used even when sufficient excess is available.
With enable/disable
β
In the configuration under the loadpoints
flag, you can tweak the enable
and disable
logic to suit. Changes to the threshold
value are possible via the API.
Example:
loadpoints:
enable:
delay: 1m
threshold: -200 # Charging starts when 200w of feed-in occurs for 1 minute.
disable:
delay: 30m
threshold: 1200 # Charging stops when the grid supplies 1.2kW of energy for more than 30 minutes.
PSA (Peugeot / CitroΓ«n / Vauxhall / Opel): Charging status is only updated when I use the appβ
This is unfortunately a restriction of the manufacturer's online service - PSA delivers outdated values until they are renewed by opening the mobile app.
Sadly, no workaround to this issue has been found.
Passwordβ
I forgot my password. How can I reset it?β
The password is stored encrypted, so it can't be read. You can set a new password via the command line.
evcc password set
Alternately, you can reset the password. You'll be prompted to set a new password the next time you access the evcc UI.
evcc password reset
Statistical Dataβ
Telemetry & Community Dataβ
The evcc Website (and the "Charge Energy Overview" dialog in the evcc UI) shows aggregated live charging data from evcc installations. We collect this data on our central api.evcc.io server - participation is completely voluntary.
How do I participate?β
Simply turn on the toggle in the "Charge Energy Overview" dialog in the evcc UI.
A π Sponsor Token is currently required to participate in Community Data. This helps ensure that our data quality stays high, and poor / fake data stays out.
What data is currently being collected?β
We currently collect the following:
- current charging power
- current proportion of charging power supplied by solar
- total charged energy
- total proportion of energy supplied by solar
We may collect more data in the future, but this will never be personal data or private information (such as location). Your privacy is really important to us!
What happens to the data?β
We save the amount of energy aggregated per evcc instance. We do not form user profiles over time, and have no interest in doing this in the future.
Our goal is to inspire more users to use evcc, learn more about how users use evcc, and above all, visualise the potential of renewable solar energy being used by evcc.
The data shown can be called up by anyone using our API (https://api.evcc.io/v1/total). If you've got some awesome idea for a creative visualisation, please build something and let us know about it!
You can find more information on how we use data at our Privacy Policy (DE).
Savings Calculationβ
In the bottom right of the evcc interface, you'll find the percentage of energy used to charge your vehicle(s) that has come from Solar power (for example, 85% solar energy).
If you click on it, you'll get a dialog showing more details, including on total calculated savings versus grid.
To make sure that these figures are accurate, please make sure your evcc.yaml
includes the appropriate tariffs
configuration.
Example:
tariffs:
currency: EUR # (default EUR)
grid:
type: fixed
price: 0.294 # [currency]/kWh
feedin:
type: fixed
price: 0.08 # [currency]/kWh
More details, including on how to use variable rate tariffs (such as those from Octopus Energy) can be found in Configuration - Tariffs.
Please note that these statistics are rough and shouldn't be treated as perfectly accurate.
When calculating savings, evcc uses the total amount of charged energy, and the energy sources used during charging (grid, house battery, solar).
What is Solar Energy?
Solar Energy is energy used directly from the Solar installation, and energy provided by any installed house battery. evcc assumes that the house battery is primarily used to store excess, self-produced solar power. If the house battery also discharges to satisfy other loads, or charges from grid supply, this assumption isn't always correct. Battery losses from inversion / rectification are also not taken into account.
Calculation of savings / effective price
The algorithm distinguishes between grid supply and self-generated solar energy (solar and house battery).
The cost advantage of your solar energy is calculated from the difference between your grid import rate (e.g 30ct/kWh) and your feed-in tariff (e.g 8ct/kWh). In this example, each unit of produced energy is 22ct (30ct - 8ct) cheaper than the grid import rate. If you charged a vehicle with 2 kWh of your own energy, this would then correspond to an effective saving of 44ct.
If you charged 100% with your own solar energy, the displayed effective energy price would be the cost of not exporting to the grid, i.e the feed-in tariff (9ct/kWh). If you charge with 50% solar energy and 50% grid power, the effective energy price adapts accordingly (e.g 19ct/kWh).
If you don't receive a feed-in tariff for exporting power to the grid, you can set the feed-in price to 0 - the solar energy is then treated as being free of charge.
Calculation of the solar energy share
If you draw energy from several sources at the same time (e.g. 50% PV, 50% grid), your own energy is first allocated to your home. This means all consumers that are not evcc controlled. The remaining share is then divided among the charging sessions. Example: Your PV system generates 3 kW. These 3 kW are completely consumed by the house (e.g. washing machine). In parallel, you charge your car with 3 kW (e.g. mode = fast). In this case, the house is calculated with 100% solar share, the car with 0%.
Flexible pricing (Octopus Energy, Awattar, Tibber, etc) is taken into account when determining the effective energy price.
Water Heater & Heat Pumpβ
Example: SG-Ready contact with Shellyβ
In this example of how flexible evcc can be, we control a water heat pump.
"Vehicle State of Charge" is used to show the current temperature of the water.
- Shelly 3EM as the Grid Supply Meter
- Shelly EM as the Charge Meter
- Shelly 1 as the Charger (opens/closes the Call for Water contact)
Beispielkonfiguration
network:
schema: http
host: evcc.local
port: 7070
interval: 10s
log: info
meters:
- name: grid
type: template
template: shelly-3em # Shelly 3EM as Grid Supply Meter
usage: grid
host: 192.168.178.28
- name: WP_Pwr
type: template
template: shelly-1pm # Shelly EM as the Charge Meter
#usage: charge
host: 192.168.178.21
channel: 1
chargers:
- name: WP_SG
type: template
template: shelly # Shelly 1 opens and closes the Call for Water contact
host: 192.168.178.29
standbypower: -1
vehicles:
- name: WP
type: custom
title: Hot Water Pump
icon: waterheater
phases: 1
onIdentify:
mode: pv
minsoc: 40
targetsoc: 60
soc:
source: mqtt
topic: House/Water_Temp
loadpoints:
- title: HotWater
charger: WP_SG
meter: WP_Pwr
vehicle: WP
enable:
threshold: 0
delay: 1m
disable:
threshold: 0
delay: 15m # Run for at least 15 minutes
soc:
estimate: false
poll:
mode: always
interval: 5m
site:
- title: Water
meters:
grid: grid
mqtt:
broker: raspberrypi:1883
topic: evcc