-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
Description
Describe the bug
Hey all,
i have this setup:
lp-1 -> Heatpump Prio 0
lp-2 -> Zaptec Go Prio 10
lp-3 -> Zaptec Go2 Prio 5
At PV Charging i'm currently seeing two issues:
- Both boxes get in an on and off cycle each time the charging starts (more details below)
- After the control of evcc the box lp-2 does not charge anymore until i change the loadmode policy at zaptec. (more details below)
on off cylces:
i have both cars connected and set to pv charging. If enough pv power is available, both cars start charging with 4.1kw. As i understood this is the right behaviour with priorities and one loadpoint should stop in the next cycle, right?
But both boxes stop on the next cycle. Then evcc sees "oh! enough power! lets start charging" and both boxes start again. In the next cycle both boxes stop again and then start again. etc etc. Thats strange...
but in the logs i dont see a stop command to the lp-2 box (46181390-a597-4272-9fc8-f38edd7bf1bb) only for the lower prio one.
This leads me to another observation. Evcc changes the installation settings with allows max currents. This is the load policy of my installation. A installation at zaptec is a charging current, where both boxes are set to. So this load policy is in control of both boxes. not only one.
As the box lp-3 is allowed in the zaptec configuration as a 22kw box, it can get 32a. If this box is active, the lp-2 box is not allowed to get power.
See:
This also happens, after the pv charging, on the next day lp-2 can not start a charge. Evcc says "waiting for charge to begin" and zaptec says "paused". If i change then the charging policy vom 32,0,0 to 16,16,16 the charging directly starts!
So long stroy short:
- should i move both boxes to two seperate installations in zaptec speech? (its delete the box etc...)
- is the configuration of evcc on the loadpolicy of zaptec a problem or needed at all?
any better suggestions? :D
Steps to reproduce
- Connect both cars
- Start PV Charging
...
Configuration details
charger
---
db:7 {Type:template Title: Icon: Product:Zaptec Go, Pro} map[id:46181390-a597-4272-9fc8-f38edd7bf1bb password:***** template:zaptec user:*****]
db:10 {Type:template Title: Icon: Product:Zaptec Go (OCPP)} map[connector:1 connecttimeout:5m meterinterval:10s stationid:ZAP111522 template:ocpp-zaptec]
db:11 {Type:template Title: Icon: Product:Zaptec Go (OCPP)} map[connector:1 connecttimeout:5m meterinterval:10s stationid:ZAP111522 template:ocpp-zaptec]
db:12 {Type:template Title: Icon: Product:Zaptec Go (OCPP)} map[connector:1 connecttimeout:5m meterinterval:10s stationid:ZAP111522 template:ocpp-zaptec]
db:13 {Type:template Title: Icon: Product:Zaptec Go (OCPP)} map[connector:1 connecttimeout:5m meterinterval:10s stationid:ZAP111522 template:ocpp-zaptec]
db:14 {Type:template Title: Icon: Product:Zaptec Go (OCPP)} map[connector:1 connecttimeout:5m meterinterval:10s stationid:ZAP111522 template:ocpp-zaptec]
db:15 {Type:template Title: Icon: Product:Zaptec Go (OCPP)} map[connector:1 connecttimeout:5m meterinterval:10s stationid:ZAP111522 template:ocpp-zaptec]
db:16 {Type:template Title: Icon: Product:Zaptec Go 2} map[id:c23d41db-a4e7-455b-9fd0-3dd2947c20e4 password:***** template:zaptec user:*****]
[db ] TRACE 2025/12/27 16:01:20 SELECT * FROM `configs` WHERE `configs`.`class` = 2 2 <nil>
meter
---
db:4 {Type:template Title:PV Icon: Product:Sungrow SH Series Hybrid Inverter} map[baudrate:9600 capacity:9.6 host:192.168.2.212 maxacpower: modbus:tcpip template:sungrow-hybrid usage:pv]
db:5 {Type:template Title:PV Batterie Icon: Product:Sungrow SH Series Hybrid Inverter} map[baudrate:9600 capacity:9.6 host:192.168.2.212 maxacpower: modbus:tcpip template:sungrow-hybrid usage:battery]
[db ] TRACE 2025/12/27 16:01:20 SELECT * FROM `configs` WHERE `configs`.`class` = 3 3 <nil>
vehicle
---
db:1 {Type:template Title: Icon: Product:Hyundai Bluelink} map[cache:15m capacity:63 icon:car identifiers:[nfc-07B6623E] language:de mode:pv password:***** template:hyundai title:IONIQ 5 user:*****]
db:6 {Type:template Title: Icon: Product:Generisches Fahrzeug} map[icon:car identifiers:[nfc-17FC6A3E] minCurrent:6 mode:pv template:offline title:Tesla xxx]
db:9 {Type:template Title: Icon: Product:Volkswagen We Connect ID} map[cache:15m capacity:86 icon:car identifiers:[nfc-BB1910BE] maxCurrent:16 mode:pv password:***** phases: priority:5 template:vw timeout:10s title:ID7 user:***** vin:*****]
[db ] TRACE 2025/12/27 16:01:20 SELECT * FROM `configs` WHERE `configs`.`class` = 4 0 <nil>
[db ] TRACE 2025/12/27 16:01:20 SELECT * FROM `configs` WHERE `configs`.`class` = 5 2 <nil>
loadpoint
---
db:8 {Type: Title: Icon: Product:} map[charger:db:7 circuit:main defaultMode:pv limitSoc:0 meter: mode:pv phasesConfigured:3 planEnergy:0 planPrecondition:0 planTime:0001-01-01T00:00:00Z priority:10 soc:map[estimate:true poll:map[interval:3.6e+12 mode:charging]] thresholds:map[disable:map[delay:1.8e+11 threshold:0] enable:map[delay:6e+10 threshold:0]] title:WB Vorne vehicle:]
db:17 {Type: Title: Icon: Product:} map[charger:db:16 circuit:main defaultMode:pv maxCurrent:16 meter: mode:pv phasesConfigured:0 priority:3 soc:map[estimate:true poll:map[interval:3.6e+12 mode:charging]] thresholds:map[disable:map[delay:1.8e+11 threshold:0] enable:map[delay:6e+10 threshold:0]] title:Carport vehicle:]
[db ] TRACE 2025/12/27 16:01:20 SELECT * FROM `configs` WHERE `configs`.`class` = 6 0 <nil>
network:
# schema is the HTTP schema
# setting to `https` does not enable https, it only changes the way URLs are generated
schema: http
# host is the hostname or IP address
# if the host name contains a `.local` suffix, the name will be announced on MDNS
# docker: MDNS announcements don't work. host must be set to the docker host's name.
host: evcc.local
# port is the listening port for UI and api
# evcc will listen on all available interfaces
port: 7070
interval: 30s # control cycle interval
sponsortoken: XXX
telemetry: true
plant: XXX
# log settings
log: trace
meters:
- name: grid
type: template
template: sungrow-hybrid
usage: grid
modbus: tcpip
id: 1
host: XXX
port: 502
timeout: 15s
- name: wp_pwr
type: custom
power:
source: mqtt
topic: WP-Meter/status/em:0
jq: if .total_act_power < 100 then 0 else .total_act_power end
chargers:
- name: WP_SG
type: custom
features:
- integrateddevice
- heating
icon: waterheater
status:
source: mqtt
topic: "Viss/Status"
jq: if .output == true then "C" else "B" end
enabled:
source: mqtt
topic: "Viss/Status"
jq: .output
enable:
source: mqtt
topic: Viss/enable
payload: ${enable:%d}
maxcurrent:
source: mqtt
topic: Viss/current
soc:
source: mqtt
topic: Viss/Wasser_temp
vehicles:
- name: WP
type: custom
title: Wärmepumpe
icon: waterheater
phases: 3
soc:
source: mqtt
topic: Viss/Wasser_temp
site:
title: xxx # display name for UI
meters:
grid: grid # grid meter
pv:
# - my_pv # list of pv inverters/ meters
battery:
# - my_battery # list of battery meters
# aux:
# - aux # list of auxiliary meters for adjusting grid operating point
residualPower: 150 # additional household usage margin
#
loadpoints:
- title: Warmwasser
charger: WP_SG
meter: wp_pwr
vehicle: WP
circuit: main
minCurrent: 7
priority: 0
enable:
threshold: 0
delay: 5m
disable:
threshold: 0
delay: 10m
soc:
estimate: false
poll:
mode: always
interval: 1m
# tariffs are the fixed or variable tariffs
tariffs:
currency: EUR # three letter ISO-4217 currency code (default EUR)
grid:
# either static grid price (or price zones)
type: fixed
price: 0.2417 # EUR/kWh
feedin:
# rate for feeding excess (pv) energy to the grid
type: fixed
price: 0.08 # EUR/kWh
co2:
solar:
type: template
template: forecast-solar
lat: 50.1031658
lon: 9.1015744
dec: 30
az: 0
kwp: 9.6
# mqtt message broker
mqtt:
broker: 192.168.2.168:1883
topic: # root topic for publishing, set empty to disable
user: xxx
password: xxx
# influx database
influx:
url: http://192.168.2.168:8086
database: evcc
token: xxx
org: xxx
# eebus credentials
eebus:
messaging:
events:
start: # charge start event
title: Charge started
msg: Started charging in "${mode}" mode
stop: # charge stop event
title: Charge finished
msg: Finished charging ${chargedEnergy:%.1fk}kWh in ${chargeDuration}.
connect: # vehicle connect event
title: Car connected
msg: "Car connected at ${pvPower:%.1fk}kW PV"
disconnect: # vehicle connected event
title: Car disconnected
msg: Car disconnected after ${connectedDuration}
soc: # vehicle soc update event
title: Soc updated
msg: Battery charged to ${vehicleSoc:%.0f}%
guest: # vehicle could not be identified
title: Unknown vehicle
msg: Unknown vehicle, guest connected?
services:Log details
will be attached as comment, as this form only allows 65k characters in sum :(
What type of operating system or environment does evcc run on?
Docker container
External automation
- I have made sure that no external automation like HomeAssistant or Node-RED is active or accessing any of the mentioned devices when this issue occurs.
Nightly build
- I have verified that the issue is reproducible with the latest nightly build
Version
v0.211.1 nightly