NEWS
[Gelöst] Vestel EVC04 SW mit Modbus steuern
-
Hallo,
ich habe jetzt eine EVC04-AC22SW, mit Firmware v3.50.0. Ich habe die Register in einer modbus-Instanz eingetragen. Leider bekomme ich keine Strings geliefert. Anscheinend hat der String pro Adresse (16-Bit) ein Zeichen, und ioBroker versucht 2 Zeichen pro 16-Bit zu lesen, wodurch immer gleich das erste Zeichen 00 ist (String-Ende). Mit einem LE-String bekomme ich zumindest das 1. Zeichen.
Die WB reagiert zumindest auf Änderungen von "Charging Current" und den Alive/Failsave-Registern, soweit sogut.
Ich habe in der Modbus-Config "Aliases" aktiv und muss entsprechend die R-Register unter "Input-Register" mit einem Offset von 30001 eintragen. Das heißt, die "Brand" hat nicht die Adresse 190, sondern 30191.
"Charging Current" ist ein "Holding Register" und hat bei mir die Adresse 45005 (statt 5004).
Prinzipiell habe ich ein kleines Blockly-Skript geschrieben, das den PV-Ertrag unserer E3DC ausliest, davon den Hausverbrauch (excl. Wallbox-Verbrauch) abzieht (das ist der für die WB verfügbare Strom), abrundet, und damit die WB neu einstellt. Im Endeffekt soll die Hausbatterie langsam mitladen, um kleinere Wolken überbrücken zu können (und damit vermeiden, dass das Auto regelmäßig in den Standby geht, weil das Aufwachen recht lange dauert).
Im Großen und Ganzen tut die Regelung, was sie soll..... Leider habe ich das Problem, dass der Leistungsmesser (Register 1010-1033) häufig hängenbleibt, und über Minuten keine neuen Werte liefert. Entsprechend rechne ich dann in so einem Fall einen falschen Hausverbrauch aus.
Dann dachte ich, dass "Session Max Current" (1100) der höchste Strom ist, den die Kombination aus EVSE, EV und Kabel beherrscht. Aber meistens passt sich bei mir der Wert an den dynamischen "Charging Current" (5004) an. Also wenn ich mit 6A laden will, steht in diesem Register irgendwann verzögert auch eine 6. Manchmal friert dieser Wert auch ein, und ich kann dann NUR noch mit 6A laden, obwohl im "Charging Current" (5004) der von mir geschriebene Wert auch wieder ausgelesen wird. Abhilft schafft im Moment nur, Wagen abstöpseln und Ladevorgang neu starten.
An Timeouts kann das Problem nicht liegen. Ich überprüfe "Time" (294) regelmäßig, dass es sich ändert.
"Charging State" (1001) verweilt übrigens gerne auf 1 (charging), selbst wenn der Ladevorgang unterbrochen wurde.
Ich bin gerade etwas am Verzweifeln. Eigentlich bin ich im Coden ganz routiniert, ioBroker und Modbus sind für mich aber Neuland. Funktioniert es bei irgendjemandem zuverlässig? Oder hat die Firmware Macken?
Grüße -
Ich erzähl einfach mal weiter...
Es scheint bei den On-Board-Chargern (OBC) üblich zu sein, Stromunterbrechungen zu zählen, und bei "zu vielen" Unterbrechungen schalten die Autos auf "Fehler" wegen "unzuverlässiger Versorgung". Nun scheint der Corsa-E "absichtliche Ladepausen" für "Unterbrechungen" zu halten und dann beendet er zuverlässig den Ladevorgang, bis man den Stecker zieht und wieder anstöpselt. Meine Strategie, immer mit mindestens 6A zu laden, ist da wohl die einzige Lösung, die man mit der EVC04 hinbekommt...
"Session Max Current" (1100) scheint tatsächlich das Minimum von "Charging Current" (5004), "EVSE Max Current" (1104) und "Cable Max Current" (1106) zu sein, wobei ich ein Register der Marke "EV Max Current" (???) vermisse. Also scheint es kein Register zu geben, das den maximalen Strom anzeigt, den man für "Session Max Current" (1100) verwenden kann. Es hilft nur Ausprobieren.
Die Regelung leidet darunter, dass alle Stromänderungen mit großer Verzögerung ausgeführt werden. Wenn ich die Modbus-Register alle 15s auslese, dann hätte ich gedacht, dass ich spätestens 15s nach einer Soll-Änderung auch zumindest eine deutliche Änderung im gemessenen Strom sehe. Aber nein, es ändert sich oft 2 Intervalle gar nichts. Und eine Verlängerung auf 30s verschlimmert eher das Problem. Wenn ich den Strom auf 10A einstelle und dann für ein Intervall auf 16A und anschließend auf 12A, dann messe ich immer:10A -- 10A
10A -- 10A
16A -- 10A
12A -- 10A
12A -- 16A
12A -- 12ASchaltet man mehrmals hintereinander so schnell, unterbricht die EVC04 kurz den Strom, was das Auto als "unzuverlässige Stromquelle" auffasst, wodurch es dann auf "Fehler" schaltet. Helfen tut nicht, das Intervall zu verlängern (mit dem der Modbus-Treiber pollt), dadurch scheint sich die Verzögerung nur zu vergrößern, sondern es hilft vermutlich nur, das Intervall zu verkürzen und softwaremäßig die Verzögerungen miteinzuplanen. Das heißt, solange man nicht den Strom misst, den man eingestellt hat, sollte man auf weitere Sollwert-Änderungen erst einmal verzichten. Meist dautert es 2 Intervalle, aber es kann auch mal deutlich länger dauern.
Eventuell sollte man auch prüfen, ob die Änderung in das Register "Session Max Current" durchschlägt. Dann wäre eine Stromänderung ein 3-stufiger Prozess:- "Charging Current" (5004) ändern,
- Warten, bis "Session Max Current" (1100) die Änderung nachvollzogen hat,
- Warten, bis "Active Power Total" (1020) sinnvolle Werte liefert.
Oh je, jetzt wird aus meinem einfachen Trigger eine komplexe State-Maschine.....
Bis denne
-
@steinp5812 Oh, ich könnte mich Ohrfeigen.... Ich habe nach der Installation sofort die Updates eingespielt, dann die Wallbox und die App konfiguriert. Dann lief es auch, bis ich mit ioBroker angefangen habe. Jetzt habe ich die WB aus der App geschmissen, App gelöscht, die BW auf Werkseinstellungen gebracht und von Vorne angefangen, und seitdem ist die WB stabil. So einfach kann's gehen.
Leider hat die App jetzt den gesamten bisherigen Stromverbrauch NOCH einmal oben drauf gerechnet, aber das ist ein anderes Thema.
Bis denne -
@steinp5812 Hi, kannst du deine Erfahrungen ggf. hier teilen: https://forum.iobroker.net/topic/53949/modbus-tcp-mit-vestel-evc04-register-etc ? Das wäre prima!