evcc-io / evcc

Sonne tanken ☀️🚘
https://evcc.io
MIT License
3.57k stars 660 forks source link

Easee wallbox stoppt Ladung nach Phasenumschaltung #2519

Closed hanzoh closed 2 years ago

hanzoh commented 2 years ago

Describe the bug Das Laden startet bei "Min+PV" 3-phasig, da genug Überschuss vorhanden. Dann sinkt der PV Output und es erfolgt ein Wechsel auf 1P. Es erscheint die Warnung ignoring inconsistent phases: 1p < 3p observed active und die Ladung wird nicht wieder gestartet.

Zum Log unten folgende Zeiten, wann der Modus umgestellt wurde:

12:19:35 STOP 12:20:35 Min+PV

To Reproduce Steps to reproduce the behavior:

  1. Starte Ladung mit Min+PV
  2. PV Output sinkt unter 3 kW
  3. Wallbox bekommt Anweisung 3P->1P
  4. Wallbox stoppt
  5. Warnung ignoring inconsistent phases: 1p < 3p observed active erscheint

Expected behavior Nach dem Stopp sollte die Ladung mit 1P fortgesetzt werden.

EVCC details: Show output of evcc -v:

evcc version 0.82 (fbd0d655)
Show output of evcc dump -c configfile:
config
======

grid: grid3
-----------
Power: -31W

pv 0: pv1
---------
Power: 2097W

battery 0: battery2
-------------------
Power: -277W
SoC:   17%

loadpoint 1
===========

charger: wallbox5
-----------------
Power:          1312W
Current L1..L3: 5.71A 0.008A 0.008A
Charge status:  C
Enabled:        true
Charged:        1.1kWh

vehicle 0
---------
SoC:            58%
Charge status:  C
Range:          189km
Odometer:       not available
Finish time:    2022-02-08 07:29:00 +0100 CET
Climate active: false
Outside temp:   19.5°C
Target temp:    19.5°C
Capacity:       58kWh
OnIdentified:   TargetSoC:100, MinCurrent:6, MaxCurrent:16
Show evcc configuration file evcc.yaml:
uri: 0.0.0.0:7070 # uri for ui
interval: 10s # control cycle interval

log: trace #info
levels:
  modbus: debug

meters:
- type: custom
  name: pv1 
  power:
    source: calc
    add:
    - source: modbus
      model: sunspec
      value: 160:1:DCW # SunSpec Model 160 MPP string 1 DCW
      uri: 192.168.178.46:1502
      id: 71
    - source: modbus
      model: sunspec
      value: 160:2:DCW # SunSpec Model 160 MPP string 2 DCW
      uri: 192.168.178.46:1502
      id: 71
- type: template
  template: kostal-plenticore
  usage: battery 
  modbus: tcpip 
  name: battery2 
  id: 71 
  host: 192.168.178.46 
  port: 1502
- type: template
  template: kostal-ksem-inverter
  usage: grid 
  modbus: tcpip 
  name: grid3 
  id: 71 
  host: 192.168.178.46 
  port: 1502

chargers:
- type: template
  template: easee
  user: xxx
  password: xxx 
  charger: xxx
  name: wallbox5

vehicles:
- type: template
  template: id
  title: ID.3 
  user: xxx
  password: xxx
  vin: xxx
  capacity: 58 
  targetSoC: 100 
  name: ev4

loadpoints:
- title: Garage
  charger: wallbox5
  vehicles:
  - ev4
  mode: minpv
  phases: 3
  mincurrent: 6
  maxcurrent: 16
  resetOnDisconnect: true

site:
  title: Zuhause
  meters:
    grid: grid3
    pvs:
    - pv1
    batteries:
    - battery2
  bufferSoC: 5

sponsortoken: xxx

Show evcc log output with --log trace:

https://pastes.io/f54w84upoa

andig commented 2 years ago

Kannst Du bitte ein Log ohne VW machen? Nur Easee auf trace.

hanzoh commented 2 years ago

Leider war jetzt nicht mehr genug Sonne da, um auf über 4kW zu kommen, aber ich konnte es so reproduzieren:

Start mit Min+PV -> 1.4 kW 1P: OK Dann umgeschaltet auf "Sofort" -> 5.5 kW 3P: OK (der ID.3 ist auf reduzierte AC Leistung gestellt, dann zieht er nicht mehr max 11 kW sondern nur noch 5,5 kW) Dann wieder auf Min+PV stellen -> Ladevorgang stoppt und läuft nicht von alleine an

FYI: Auch die Umschaltung von Min+PV auf Sofort wirft Warnungen, aber es funktioniert trotzdem.

evcc.log

andig commented 2 years ago

Große logs bitte als Datei, Präfixe der Zeilen entfernen damit man etwas sehen kann.

hanzoh commented 2 years ago

Ich habe es im Kommentar oben angepasst

andig commented 2 years ago

Bei Dir wird auf ebene Circuit geschaltet, das scheint noch nicht zu funktionieren wie gedacht. Ich sehe was passiert, kann Dir aber nicht erklären, warum die Easee so reagiert (/cc @naltatis):

Bei minpv abschalten und 1p setzen:

[lp-1  ] DEBUG 2022/02/07 16:09:28 set charge mode: minpv
[lp-1  ] DEBUG 2022/02/07 16:09:29 phase disable timer elapsed
[easee ] TRACE 2022/02/07 16:09:29 POST https://api.easee.cloud/api/chargers/xxx/commands/pause_charging
[easee ] TRACE 2022/02/07 16:09:29 POST https://api.easee.cloud/api/sites/164512/circuits/157936/settings
{"dynamicCircuitCurrentP1":16,"dynamicCircuitCurrentP2":0,"dynamicCircuitCurrentP3":0}
[lp-1  ] DEBUG 2022/02/07 16:09:29 switched phases: 1p @ -2720W

Strom geht auf Null:

[easee ] TRACE 2022/02/07 16:09:29 ProductUpdate xxx: DYNAMIC_CHARGER_CURRENT 0
[easee ] TRACE 2022/02/07 16:09:30 ProductUpdate xxx: DYNAMIC_CIRCUIT_CURRENT_P2 0
[easee ] TRACE 2022/02/07 16:09:30 ProductUpdate xxx: DYNAMIC_CIRCUIT_CURRENT_P1 16
[easee ] TRACE 2022/02/07 16:09:30 ProductUpdate xxx: DYNAMIC_CIRCUIT_CURRENT_P3 0
[easee ] TRACE 2022/02/07 16:09:30 ProductUpdate xxx: CIRCUIT_TOTAL_ALLOCATED_PHASE_CONDUCTOR_CURRENT_L2 0

Der Grund sagt mir nix?

[easee ] TRACE 2022/02/07 16:09:30 ProductUpdate xxx: REASON_FOR_NO_CURRENT 0052
[easee ] TRACE 2022/02/07 16:09:30 ProductUpdate xxx: CIRCUIT_TOTAL_ALLOCATED_PHASE_CONDUCTOR_CURRENT_L3 0
[easee ] TRACE 2022/02/07 16:09:30 ProductUpdate xxx: OUTPUT_CURRENT 0
[easee ] TRACE 2022/02/07 16:09:30 ProductUpdate xxx: CIRCUIT_TOTAL_ALLOCATED_PHASE_CONDUCTOR_CURRENT_L1 0

Stromo runter setzen:

[easee ] TRACE 2022/02/07 16:09:33 POST https://api.easee.cloud/api/chargers/xxx/settings
{"dynamicChargerCurrent":6}

Ladung wieder beginnen:

[easee ] TRACE 2022/02/07 16:09:33 POST https://api.easee.cloud/api/chargers/xxx/commands/resume_charging
[easee ] TRACE 2022/02/07 16:09:34 ProductUpdate xxx: LEDMODE 0023

Der Grund sagt mir nix?

[easee ] TRACE 2022/02/07 16:09:34 ProductUpdate xxx: REASON_FOR_NO_CURRENT 0008
[easee ] TRACE 2022/02/07 16:09:34 ProductUpdate xxx: DYNAMIC_CHARGER_CURRENT 6
[easee ] TRACE 2022/02/07 16:09:35 ProductUpdate xxx: REASON_FOR_NO_CURRENT 0006
[easee ] TRACE 2022/02/07 16:09:35 POST https://api.easee.cloud/api/chargers/xxx/settings
{"dynamicChargerCurrent":6}

Das Problem: sie lädt nicht mehr, vmtl wg. REASON_FOR_NO_CURRENT- aber was bedeuten die?

Sinnig wäre, den Flow mal per Postman von Hand auszuprobieren um rauszufinden was da passiert.

andig commented 2 years ago

Hier gibts die Gründe: https://github.com/fondberg/easee_hass/blob/master/custom_components/easee/const.py#L638-L657:

   52: RNC_MAX_DYNAMIC_CHARGER_CURRENT_TOO_LOW,
    8: RNC_NO_CURRENT_REQUEST_RECEIVED,
    6: RNC_WAITING_IN_FULLY,
andig commented 2 years ago

Mein Vorschlag: frag bitte mal den Support was REASON_FOR_NO_CURRENT = RNC_WAITING_IN_FULLY bedeutet nach einer 3p1p Umschaltung.

hanzoh commented 2 years ago

Ich habe Easee mal über deren Kontaktformular geschrieben. Nach einer Suche nach "waiting_in_fully easee" habe ich folgendes gefunden:

https://developer.easee.cloud/changelog/ocpp-14 WaitingInFully = 6, // charged queue (charger assumes one of: EV uses delayed charging, EV charging complete)

Ist also doch der ID.3 Schuld?

andig commented 2 years ago

Keine Ahnung. Woher/wie sollte der Charger das wissen? Woran macht er das fest?

/cc @premultiply

premultiply commented 2 years ago

Auf gut Deutsch: Das Fahrzeug fordert keinen Strom an. Ist es eingeschlafen oder im Fehlerzustand und die Box bekommt es nicht geweckt?

andig commented 2 years ago

Auf gut Deutsch: Das Fahrzeug fordert keinen Strom an. Ist es eingeschlafen oder im Fehlerzustand und die Box bekommt es nicht geweckt?

Ich frag mich warum das früher nie passiert ist und ob die ID überhaupt dafür anfällig sind? Zusammen mit #2525 könnte man eher vermuten, dass es bei Easee eine Änderung gab?

hanzoh commented 2 years ago

Gerade kam die Antwort vom easee Support:

das Auto wartet in der Warteschlange.Wenn es mehr Energie benötigt, kann es später wieder aufgeladen werden.

Das kann passieren, wenn der Besitzer einen Ladeplan in das Auto programmiert hat.Es kann aber auch einfach nur voll geladen sein.

premultiply commented 2 years ago

Muss man das ggf. auf Status B2 (enabled und Status B) mappen?

andig commented 2 years ago

Muss man das ggf. auf Status B2 (enabled und Status B) mappen?

Gleicher Punkt wie in der Diskussion. Das Auto lädt nicht- bei uns ist das B. Warum sollte das genau bei der Phasenumschaltung passieren? Hier muss irgendwas anderes nicht stimmen.

hanzoh commented 2 years ago

Sag Bescheid wenn ich nochmal etwas testen soll. Das ganze läuft bei den Schwiegereltern, am Wochenende könnte ich mir das nochmal anschauen. Kann man evtl. über die VW API auslesen, ob und wann das Auto eingeschlafen ist?

andig commented 2 years ago

Ich hab keine Idee was wir da tun sollen. Schau doch mal nach der Umschaltung wenn das Auto nicht mehr lädt in die Easee App und ins API und in die BMW App ob da irgendwelche spannenden Informationen drin sind. Aus Sicht Logfile ist alles korrekt.

andig commented 2 years ago

das Auto wartet in der Warteschlange.Wenn es mehr Energie benötigt, kann es später wieder aufgeladen werden. Das kann passieren, wenn der Besitzer einen Ladeplan in das Auto programmiert hat.Es kann aber auch einfach nur voll geladen sein.

Das kannst du ja prüfen und Easee mitteilen ob der Fall. Falls nein -> weitere Fehlersuche bei Easee.

andig commented 2 years ago

Wenn beide Schritte erledigt sind könnten wir auch mal probieren ob sich am Verhalten etwas ändert wenn die Umschaltung am Charger anstatt am Circuit erfolgt. Dafür müssten ich aber noch was ändern.

Waldmensch1 commented 2 years ago

Das genau gleiche Verhalten habe ich heute bei meiner Go-E gesehen, mit angeschlossenem Enyaq, allerdings im PV Modus. Der EVCC schaltete von 3 auf 1 phasig und lud dann nicht mehr. Da ich nur über VPN verbunden war, habe ich im UI auf minPV geschaltet. Dadurch hat sich EVCC gefangen und die Ladung auf 1P aktiviert. Dann habe ich wieder auf PV geschaltet was dann ganz normal einphasig weiterlief. Habe dazu einen Beitrag im Forum geschrieben. Werde bei nächster Gelegenheit Log beschaffen.

Eventuell liegt der Fehler also nicht bei der easy, oder der Go-E hat den Gleichen.

andig commented 2 years ago

Dann würde mich auch hier interessieren was die GoE app sagt. Die Easee war anscheinend freigeschaltet. Es bleibt mysteriös…

andig commented 2 years ago

@Waldmensch1 Dein Fehler bzgl. Go-E sollte durch die in https://github.com/evcc-io/evcc/pull/2613 beschriebenen Anpassungen adressiert werden. Gerne dort testen, wird auch zeitnah in die Nightly Releases überführt.

Zum Easee Fehler habe ich weiter keine Idee- warten auf Easee Support und Diskussion in https://github.com/evcc-io/evcc/discussions/2504

andig commented 2 years ago

Wollt ihr mal die nightly Version ausprobieren? Da sind viele Fehler der Phasenumschaltung behoben (und hoffentlich keine neuen dazu gekommen).

Waldmensch1 commented 2 years ago

Wollt ihr mal die nightly Version ausprobieren? Da sind viele Fehler der Phasenumschaltung behoben (und hoffentlich keine neuen dazu gekommen).

Ich habe grad mal meinen Fork mit dem Master (stand 6.3. 10:00) gemerged und gebaut. Ich gehe mal davon aus, dass der Master die Quelle für die Nightlies ist. Läuft soweit. Mit Phasenumschaltung wird aber wetterbedingt heute nichts passieren. Die nächste Woche soll sonniger werden. Bin nur leider, aufgrund der aktuellen Geschehnisse, beruflich stark eingebunden.

hanzoh commented 2 years ago

Ich hab heute Mittag die 0.85 installiert und der ID.3 lädt gerade mit Min+PV 3-phasig bei ca. 6kW Überschuss. SoC target habe ich auf 100% gestellt, damit er noch ca. 2,5h braucht, bis er voll ist. Bis dahin sollte die PV unter 4,2kW liefern, sodass er dann auf 1-phasig wechseln muss. Was mir vorhin aufgefallen war, wenn jemand mit einem Durchlauferhitzer Wasser zapft, ist jeglicher Überschuss natürlich futsch, dann regelt evcc auch direkt runter, ein paar Sekunden später dann wieder zurück. Macht es in solch einer Konstellation Sinn irgendeinen Parameter zu verstellen, sodass nicht sofort nachgeregelt wird?

premultiply commented 2 years ago

Nein, die schnelle Regelung ist völlig unproblematisch. Nur das dauernde komplett an- und abschalten wird vermieden um die Mechanik zu schonen.

hanzoh commented 2 years ago

Sorry für die Verspätung, bin leider erst heute wieder dazu gekommen mit Schwiegervater zu testen.

Die Problematik besteht leider noch, ich konnte ein neues Logfile ziehen mit id auf WARN, easee auf TRACE und sonst DEBUG.

evcc.log

hanzoh commented 2 years ago

Ich habe noch einen weiteren Test durchgeführt, um zu sehen wie das Auto sich verhält, wenn die Wallbox keinen Strom mehr hat:

evcc.log