EM2GO Home: Workaround for old fw current and phase setting
We would like to you to consider the following PR as a workaround for the EM2GO Home charger to address the following issues:
- Ignores 0A current when starting -> Set minimum of 6A when starting.
- Always starts charging with 3 phases even if evcc is set to auto or 1 phase -> Read phase setting from lp send start charging and phase setting in a row to avoid 3 phases when 1 phase is requested. We need to read the value from the lp as the charger does not know the phases needed and always starts with 3p.
- Switch phases during charging -> stop charging, pause for 10 seconds, and start charging with changed phases. This PR tries to fix issues mentioned in #12382, #14307, #14488 and #14643.
The workaround should only apply, if the firmware is <1.3 which will be tested by sending a current setting of 6.1A to the charger. If the returned value is 6A, the firmware is <1.3. If the returned value == 6.1A then it is assumed, that the firmware is >=1.3.
Does this
If the returned value == 6.1A
implicitly imply that the box can control the current in 100mA steps now?
Does this
If the returned value == 6.1Aimplicitly imply that the box can control the current in 100mA steps now?
Yes that is correct, but not with the old fw version.
Then there should probably be two different templates for the Home to correctly reflect the "mA" capability depending on the FW version? https://github.com/evcc-io/evcc/blob/master/templates/definition/charger/em2go-home.yaml
Then there should probably be two different templates for the Home to correctly reflect the "mA" capability depending on the FW version? https://github.com/evcc-io/evcc/blob/master/templates/definition/charger/em2go-home.yaml
For this purpose, we are setting "mA" capability in the charger golang file if the new firmware is installed: `
if chargerCurrent == 6 {
wb.workaround = true // Old FW installed
} else {
wb.workaround = false // New FW installed
maxCurrent = wb.maxCurrentMillis // This is setting "mA" capability
}
`
which is nice. but only a template can fix the documentation at https://docs.evcc.io/docs/devices/chargers#em2go otherwise the Home won't be listed as mA capable which might be a major selling point - not my business though :-) people use the https://docs.evcc.io/docs/devices/chargers for their buying decisions ...
which is nice. but only a template can fix the documentation at https://docs.evcc.io/docs/devices/chargers#em2go otherwise the Home won't be listed as mA capable which might be a major selling point - not my business though :-) people use the https://docs.evcc.io/docs/devices/chargers for their buying decisions ...
Agree. That's how I found the EM2GO Home in the first place.
which is nice. but only a template can fix the documentation at https://docs.evcc.io/docs/devices/chargers#em2go otherwise the Home won't be listed as mA capable which might be a major selling point - not my business though :-) people use the https://docs.evcc.io/docs/devices/chargers for their buying decisions ...
Agree. That's how I found the EM2GO Home in the first place.
Very well. We have added mA capability in the template and set mA support in the charger when not using the workaround. We keep two templates, em2go and em2go-home for now, for compatibility reasons where existing users are using the "em2go-home" template in their evcc.yaml.
Hello guys, is it possible for the user to configure the stop time? Opel, for example, needs 120 seconds to initialize the phase change.
Hello guys, is it possible for the user to configure the stop time? Opel, for example, needs 120 seconds to initialize the phase change.
We‘ll check about that. May add an extra ModBus register (for fw ≥1.3.)
How does Opel EVs behave, when the delay is less than 120 seconds? Will it throw an error? Currently the delay in the charger is set to 10 seconds.
Ist die Neuerung in der 130.11 Version schon enthalten? Konnte dieses Umschaltverhalten noch nicht beobachten. Danke für die Prüfung! Wenn die Umschalterei noch funktioniert ist das ne schöne wallbox. Habe mit der EM2GO App getestet. Ladestart 16A 3P > Pause > in App auf 1P umgestellt > ladestart. Es funktioniert ohne Probleme innerhalb von 10 Sekunden.
Ist die Neuerung in der 130.11 Version schon enthalten?
nee, ist ja ein noch nicht gemergder PR ...
@dniakamal kannst Du mal bitte drauf schauen ob das so passt? Es wäre Klasse wenn das jemand mit einer der kritischen Boxen testen könnte.
@dniakamal kannst Du mal bitte drauf schauen ob das so passt? Es wäre Klasse wenn das jemand mit einer der kritischen Boxen testen könnte.
Ich kann das Mal testen, wenn es im Nightly (oder in einer anderen (Linux-)Version) drin ist. Hab die Home Box mit Firmware v1.1. Kann also auch gleich den Workaround für die Milliampere-Regelung mittesten.
@dniakamal ok zu mergen?
friendly ping @dniakamal
friendly ping @dniakamal
Kein Feedback. Wir mergen das jetzt dennoch, im Fehlerfall revert.
Hab gerade die aktuelle Nightly Version getestet. Meine Home-Box hat Firmware v1.1. Wenn die evcc Konfiguration neu geladen oder zum ersten mal geladen wird, weiß die Box nicht, was sie tun soll und startet wie immer 3p 16A, egal was eingestellt ist. Erst wenn einmal die Phasenumstellung durchgeführt wurde (manuell oder automatisch), funktioniert das 1p starten, also wenn 1p eingestellt ist (oder auch 3p, wenn 3p eingestellt ist). Phasenumschaltung während dem Laden macht jetzt wie erwartet 10 Sekunden Pause nachdem die Phasen umgeschaltet wurden, bevor weitergeladen wird. Allerdings startet der 3p Modus weiterhin mit 16A, egal welches Stromlimit eingestellt ist.
Log im Anhang. Am Anfang bewusst einmal 3p und einmal 1p ausgewählt, bevor der Ladevorgang gestartet wird, damit auch wirklich 1p übertragen wird. Box startet auf 3p. Irgendwann kommt "phase mismatch" und es wird auf 1p umgeschaltet. Danach funktioniert 1p Start oder 3p Start. Bei 1p wird das Stromlimit korrekt übernommen, bei 3p wird immer mit 16A gestartet.
Damit lässt sich nix anfangen. Es braucht dazu die Modbus Kommunikation für die Box. Ansonsten- zumindest mit nachsteuern geht es jetzt. Besser als nix :/
Dass das 1p starten nicht funktioniert, war ein Benutzerfehler (bzw. meiner Ungeduld geschuldet). Man sollte natürlich warten, dass die Box auch die Chance hat auf 1p umzuschalten, bevor man den Ladevorgang startet. Dann bekommt man auch die Response von der Box, dass die Phasen umgeschaltet wurden. Und beim Start lädt dann auch nur eine Phase.
Trotzdem lädt die Box bei 3p erst mal mit 16A los und regelt dann runter. Im Modbus-Telegramm steht zwar 6A drin, dass wird aber erst im nächsten Intervall korrekt umgesetzt.
Log mit Modbus (nur LP-1 und EM2GO) evcc_log_modbus.txt
Good catch- da fehlte noch Speichern der Stromvorgabe: https://github.com/evcc-io/evcc/pull/17050
getestet und funktioniert jetzt wie erwartet