Jump to content

poohnet

Members
  • Gesamte Inhalte

    312
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    18

Posts erstellt von poohnet

  1. Moin zusammen,

    hier mal ein kurzer Zwischenstand meiner bisherigen Experimente. Aufgrund der (leider recht länglichen) Diskussion hier https://github.com/SmartEVSE/SmartEVSE-3/issues/25 habe ich mal einen alten Powerline-Adapter "geschlachtet" und entsprechend modifiziert:

    image.png.28d4d8f5b789eb8d18cbd70bebf117f0.png

     

    CP und PE habe ich aus der WARP herausgeführt und die EVSE-Firmware so angepasst, dass sie im Status B ein PWM-Signal mit 5% Duty Cycle erzeugt - und siehe da, pyPLC kann eine Verbindung mit meinem ID.4 aufbauen.

    Leider toggelt der EVSE dann alle paar Sekunden zwischen Status A und B hin und her, sodass die Verbindung wieder abbricht. Lässt man unabhängig vom Status grundsätzlich 5% PWM anliegen, dann wird die gesamte "DC-Precharge"-Kommunikation durchlaufen und in den Logs steht tatsächlich irgendwo der SOC 😀

    Allerdings ist das ganze noch weit weg von praxistauglich, denn eine Ladung kann mit den o. g. Anpassungen nicht mehr gestartet werden und wenn ich den Renault Zoe (ohne CCS-Lader) verbinde, dann crashed der EVSE. Grundsätzlich ist es aber schon mal eine schöne Erkenntnis, dass eine rudimentäre digitale Kommunikation möglich ist...

    Gruß Thomas

    • Like 3
  2. Ich habe gerade zwei Tests gemacht und eine sehr interessante Erkenntnis gewonnen:

    1. Ausgehend von 6 A und ohne Boost die Vorgabe jeweils um 120 mA erhöht, dabei gab es keine Probleme.
    2. Bei einer Vorgabe von 6 A lag die Stromaufnahme bereits bei 6,1 A, bei 7 A Vorgabe aber nur bei 6,3 A. Somit hat der Boost dann peu à peu jeweils 2 µs draufgeschlagen, bis bei 10 µs (d. h. 600 mA) die Ladung wieder abgebrochen ist.

    image.thumb.png.223ab40fa9bcf036c4ef80d9e8392c79.png

     

    Somit muss das irgendwie doch mit der Implementierung bzw. dem Timing des Duty Cycle zu tun haben... 😟

     

    EDIT: Problem (erstmal) gelöst - anstelle den Duty Cycle in "evse_set_cp_duty_cycle()" zu manipulieren (und dies in "evse_get_cp_duty_cycle()" wieder rückgängig zu machen), wird zum Sollstrom nun einfach der Boost addiert:

     software/src/iec61851.c | 4 ++++
     1 file changed, 4 insertions(+)
    
    diff --git a/software/src/iec61851.c b/software/src/iec61851.c
    index 309be35..f4dda42 100644
    --- a/software/src/iec61851.c
    +++ b/software/src/iec61851.c
    @@ -125,6 +125,10 @@ uint16_t iec61851_get_duty_cycle_for_ma(uint32_t ma) {
     		return 1000; 
     	}
     
    +	if (evse.boost_mode_enabled) {
    +		ma += evse.boost_current;
    +	}
    +
     	uint32_t duty_cycle;
     	if(ma <= 51000) {
     		duty_cycle = ma/60; // For 6A-51A: xA = %duty*0.6

     

    Damit ist der ID.4 dann happy und im Low-Level-Zustand des EVSE sieht man den tatsächlich anliegenden Wert...

     

    evse-debug-protocol-id4-boost.txt evse-debug-protocol-id4-manuell.txt

  3. Bislang habe ich dieses Problem nur beim ID.4 und auch nur bei geringen Ladeströmen gesehen. Ich werde aber später nochmal versuchen, das Problem zu reproduzieren und dabei das Ladeprotokoll erstellen.

    Am ID.3-Modus habe ich nichts geändert, "lediglich" die hartcodierten +4 µs auf den Duty Cycle durch einen per API ("set_boost_current()") setzbaren Wert im Bereich 0 bis 20 µs ersetzt:

     software/src/evse.c | 13 ++++++++++---
     1 file changed, 10 insertions(+), 3 deletions(-)
    
    diff --git a/software/src/evse.c b/software/src/evse.c
    index 9739c49..b81cb47 100644
    --- a/software/src/evse.c
    +++ b/software/src/evse.c
    @@ -388,10 +388,16 @@ void evse_factory_reset(void) {
     	NVIC_SystemReset();
     }
     
    +static uint16_t evse_get_adc_boost_for_ma(uint16_t ma)
    +{
    +	return BETWEEN(0, ma/60, 20);
    +}
    +
     uint16_t evse_get_cp_duty_cycle(void) {
    +	uint16_t adc_boost = evse_get_adc_boost_for_ma(evse.boost_current);
     	uint16_t duty_cycle = (64000 - ccu4_pwm_get_duty_cycle(EVSE_CP_PWM_SLICE_NUMBER))/64;
    -	if((duty_cycle >= 4) && (duty_cycle != 1000) && evse.boost_mode_enabled) {
    -		return duty_cycle - 4;
    +	if((duty_cycle >= adc_boost) && (duty_cycle != 1000) && evse.boost_mode_enabled) {
    +		return duty_cycle - adc_boost;
     	}
     
     	return duty_cycle;
    @@ -402,7 +408,7 @@ void evse_set_cp_duty_cycle(const uint16_t duty_cycle) {
     	// If boost mode is enabled we add 4us to the duty cycle. This means that we are still within the standard.
     	uint16_t adc_boost = 0;
     	if((duty_cycle != 0) && (duty_cycle != 1000) && evse.boost_mode_enabled) {
    -		adc_boost = 4;
    +		adc_boost = evse_get_adc_boost_for_ma(evse.boost_current);
     	}
     
     	const uint16_t current_cp_duty_cycle = evse_get_cp_duty_cycle();
    @@ -447,6 +453,7 @@ void evse_init(void) {
     	evse.config_jumper_current_software = 6000; // default software configuration is 6A
     	evse.max_current_configured = 32000; // default user defined current ist 32A
     	evse.boost_mode_enabled = false;
    +	evse.boost_current = 0;
     
     	evse_load_calibration();
     	evse_load_user_calibration();

     

  4. So, "Dynamic Boost" mit Überwachung des Stromflusses (I max von L1, L2 u. L3) ist implementiert und funktioniert nach ersten Tests (eigentlich) sehr gut:

    image.thumb.png.9e7b1fd1e1855959f5d20535afa7962f.png

     

    Und auch nach einer Phasenumschaltung wird der Strom peu à peu erhöht, bis 99% der Vorgabe erreicht sind:

    image.thumb.png.41cb5a8fd3e9824dacd319c9277007d8.png

     

    Einzig bei einer Vorgabe von 7 A und einem Boost von 600 mA bricht die Ladung reproduzierbar ab und das Schütz spielt Tik-Tok: 😟

    image.thumb.png.7970ee3d96f1ea9c87f4f16c34a7f0ab.png

     

    2024-04-27 12:09:41,774 | users            | Charger state changed from 1 to 2
    2024-04-27 12:09:42,796 | users            | Charger state changed from 2 to 3
    2024-04-27 12:10:13,493 | evse_common      | 7000 mA is allowed, but actual current is 6379 mA. Setting boost current to 120 mA.
    2024-04-27 12:10:43,497 | evse_common      | 7000 mA is allowed, but actual current is 6481 mA. Setting boost current to 240 mA.
    2024-04-27 12:11:13,500 | evse_common      | 7000 mA is allowed, but actual current is 6662 mA. Setting boost current to 360 mA.
    2024-04-27 12:11:43,506 | evse_common      | 7000 mA is allowed, but actual current is 6780 mA. Setting boost current to 480 mA.
    2024-04-27 12:12:13,511 | evse_common      | 7000 mA is allowed, but actual current is 6856 mA. Setting boost current to 600 mA.
    2024-04-27 12:12:14,959 | users            | Charger state changed from 3 to 2
    2024-04-27 12:12:19,981 | users            | Charger state changed from 2 to 3
    2024-04-27 12:12:21,000 | users            | Charger state changed from 3 to 2
    2024-04-27 12:12:36,030 | users            | Charger state changed from 2 to 3
    2024-04-27 12:12:37,048 | users            | Charger state changed from 3 to 2
    2024-04-27 12:12:42,068 | users            | Charger state changed from 2 to 3
    2024-04-27 12:12:43,087 | users            | Charger state changed from 3 to 2
    2024-04-27 12:12:47,108 | users            | Charger state changed from 2 to 3

     

    @MatzeTF @rtrbt

    Kann es sein, dass die Kalibrierung hier evtl. noch etwas angepasst werden muss? Mit den Standardwerten lädt der ID.4 mit 6-7A nämlich überhaupt nicht.

    Ich werde später auf jeden Fall nochmal schauen, wie sich die Zoe verhält...

     

    EDIT: Mittlerweile habe ich auch die Zoe erfolgreich mit verschiedenen Stromstärken geladen (sowohl ein- als auch dreiphasig) und keinerlei Probleme festgestellt. Mit einem Boost von 960 mA komme ich nun bis auf 15,8 A Ladestrom…   😀

     

  5. Du hast natürlich vollkommen recht, die Leistung zu überwachen ist Quatsch, schließlich gibt die Wallbox ja auch keine Leistung vor sondern StromUnd eigentlich war das ja auch meine ursprüngliche Idee, den vom Zähler gemeldeten Stromfluss zu überwachen und den Boost dynamisch zu erhöhen, wenn weniger Strom fließt, als vorgegeben (natürlich nur innerhalb des sicheren Bereichs, d. h. max. +1A auf die Vorgabe).

  6. On 4/20/2024 at 11:47 PM, borg said:

    Wir planen da allerdings das für dynamische Stromtarife aufzubohren in Zukunft.

    Das ist sehr gut, wenn das demnächst standardisiert wird. Ich habe auch einen dynamischen Stromtarif von Tibber und habe mir die Firmware daher so aufgebohrt, dass ich den aktuellen Preis per MQTT bereitstellen kann und dieser dann beim Start der Ladung gespeichert und im Ladelog ausgewiesen wird.

    Größter Nachteil dieser Lösung ist aber, dass dieser Preis am Ende u. U. herzlich wenig mit den tatsächlichen Kosten zu tun hat - z. B. weil sich der Preis zwischenzeitlich deutlich geändert hat, der meiste Strom aus PV-Überschuss gekommen ist etc.

    IMG_0230.thumb.jpeg.a1dffd746a1416542211efc2e1e1c09b.jpeg

     

  7. Kaum hat man angefangen, sich mit dem Thema zu beschäftigen, sind schon wieder ein paar Stunden rum… 🙃

    Letztendlich wird da sicherlich noch eine Menge „Jugend forscht“ nötig sein, aber sooooo kompliziert sieht das aber eigentlich auch nicht aus. Wenn ich das richtig verstanden habe, dann muss

    • der Widerstand zwischen PP und PE 1,5k betragen
    • der EVSE auf CP ein PWM-Signal mit 5% anlegen

    damit das Auto auf digitale Kommunikation wechselt, die dann über ein paralleles PLC-Modem stattfindet.

    Zumindest die ersten beiden Punkte sollten WARP-seitig ja relativ einfach umsetzbar sein, allerdings wird damit ja ein 13A-Kabel codiert und mit 5% PWM findet erstmal überhaupt keine Ladung statt. Somit müsste WARP dann nicht nur Daten abfragen, sondern auch die Ladung darüber steuern.

    Allerdings scheint AC-Laden über ISO 15118 auch nicht allgemeingültig zu funktionieren, sodass die Ansätze z. T. dahin gehen, nur die Fahrzeugparameter (wie z. B. SOC) abzufragen und danach wieder auf die klassische PWM-Vorgabe zurückzuwechseln. Wenn es aber funktioniert, dann sind sogar Ladeströme deutlich unter 6A möglich, was ein weiterer großer Pluspunkt für das Überschussladen wäre.

    Bitte korrigiert (oder ergänzt) mich, falls ich das nicht richtig zusammengefasst haben sollte…

  8. Danke auch dir, Matthias! Habe gerade nochmal nachgeschaut: In der UV ist ein 3-poliger C16 verbaut, das stand meine ich damals auch so in der Installationsanleitung für die WARP1.

    Die 11 kW sind definitiv ausreichend und eigentlich reichen auch die effektiven knapp 10 kW, denn ob die Schnellladung jetzt 2:20 oder 2:40 Stunden dauert, macht letztendlich keinen wirklichen Unterschied. Mit voller Leistung wird ja sowieso nur dann geladen, wenn der Strompreis gerade günstig ist (und der SOC das hergibt), ansonsten tröpfeln da eher einphasig um die 2 kW rein.

    Letztendlich war das somit auch eher eine Verständnisfrage als ein echtes Problem, d. h. ich wollte eigentlich nur ausschließen, dass das etwas mit meiner CP-Trennung mittels Solid-State-Relais zu tun hat.

    Andererseits habe ich jetzt, wo die Phasenumschaltung problemlos funktioniert, mit der EVSE-Firmware wieder einen neuen "Spielplatz". Eine 14 kW-Wallbox werde ich aber definitiv nicht draus machen... 🙃

  9. Danke Erik, dann bin ich erstmal froh, dass das Verhalten scheinbar nichts mit meinen sonstigen Basteleien zu tun hat 🙃

    On 4/17/2024 at 12:52 PM, rtrbt said:

    Das ist aber wenn du ein anderes Auto anschließt viel zu viel.

    Der Boost-Modus so wie wir ihn implementiert haben ist genau so viel mehr, wie die Spezifikation das erlaubt.

    Dass ihr WARP nur gemäß Spezifikation ausliefern könnt, ist absolut verständlich, aber welche Gefahr würde denn bestehen, wenn ich tatsächlich 17A vorgebe?

    Der ID.4 hat ja eh nur einen 11 kW-Lader und wenn vielleicht irgendwann einmal ein Gastfahrzeug laden sollte (was in den letzten drei Jahren nur ein einziges Mal vorgekommen ist) und dieses dann auch noch einen 22 kW hätte, würden im schlimmsten Fall diese 17A fließen. Die Zuleitung ist in 6mm² ausgeführt, das 2,5mm² Ladekabel ist mit 20A belastbar und auch der 16A LSS sollte nicht (sofort) auslösen.

    Oder habe ich einen Denkfehler?

  10. Hallo zusammen,

    seit ein paar Monaten fährt meine Frau nun auch elektrisch. Ich weiß, die Zoe ist als "Ladezicke" bekannt, d. h. mit 6A oder 7A lädt sie nicht richtig (schon gar nicht dreiphasig) und selbst mit 10A gibt's noch einen recht hohen Blindstromanteil.

    Auffällig ist aber, dass ich auch bei einer Vorgabe von 16A trotz aktiviertem Boost-Modus nur auf knapp unter 10 kW Ladeleistung komme - und zwar relativ unabhängig von Akkustand und Temperatur. Mein ID.4 lädt mit gleicher Einstellung mit ca. 10,8 kW, daher denke ich, dass das wahrscheinlich nichts mit meiner zwischengeschalteten CP-Trennung zu tun haben kann (zum Beispiel durch eine "Verfälschung" des PWM-Signals), oder?

    Habt ihr hierzu evtl. eine Idee oder einen Tipp? Klar, letztendlich entscheidet das Auto selbst, wieviel Strom es wirklich zieht, die Diskrepanz "Soll <-> Ist" ist gerade über unterschiedliche SOCs aber schon auffällig.

    Ansonsten würde ich mal versuchen, den Boost-Modus firmwareseitig vorsichtig zu erhöhen, zumal die Zoe ja bis 22 kW kann...

    Besten Dank und Gruß Thomas

  11. On 4/16/2024 at 2:28 PM, MatzeTF said:

    Danke für das Angebot, aber ich bediene mich bei Gelegenheit einfach in deinem git. 😉

    😂 Sorry, da fehlte ein @Mannitwi im Angebot... 😂

    Das ihr das nicht ohne eigene Testmöglichkeit übernehmen/veröffentlichen könnt, ist klar. Außerdem ist das ja auch eine propietäre Lösung speziell für SMA.

  12. On 4/16/2024 at 10:38 AM, Mannitwi said:

    Das Problem liegt vermutlich darin, dass Modbus TCP auf dem WR geschlossen ist

    Das ist tatsächlich ein Punkt, die Modbus-Schnittstelle ist standardmäßig nicht aktiv, d. h. die musst du im Webinterface des WR aktivieren. Ich kann aber leider nicht sagen, ob dies mit dem Benutzer-Login funktioniert oder ob dafür das Installateurs-Passwort erforderlich ist.

     

    On 4/16/2024 at 11:21 AM, MatzeTF said:

    Das direkte Abfragen des Zählers ist keine Option, da Modbus ein Client/Server-Architektur (bzw. Master/Slave) nutzt, bei der es nur einen Client geben darf, der den Bus verwaltet.

    Soweit ich weiß stellt der Sunny Home Manager 2.0 eh keine Daten per Modbus und/oder SunSpec bereit (zumindest habe ich es nicht geschafft, irgendwelche Daten abzurufen), sondern spricht per Speedwire über LAN mit den übrigen SMA-Komponenten (PV-WR, Batterie-WR etc.).

    Aus diesem Grund habe ich die Firmware des WEM ja angepasst und ein eigenes Zählermodul für den Home Manager implementiert. Wenn du magst, dann kann ich dir gerne mal eine Version der Firmware schicken. Wahrscheinlich solltest du aber auch SunSpec weiterkommen...

  13. Moin,

    ich vermittele mal kurz zwischen Tinkerforge und evcc 🙃

    Hier kam die Frage auf, ob evcc WARP3 auch per Modbus TCP steuern kann, sodass man keinen MQTT-Broker benötigt: https://github.com/evcc-io/evcc/issues/13215

    Grundsätzlich sollte da ja nichts gegen sprechen (falls jemand ein entsprechendes Template für evcc entwickelt), aber soweit ich das sehe, gibt es noch keine Möglichkeit, die Phasenumschaltung per Modbus zu triggern. Ist das geplant?

    Danke und Gruß Thomas

  14. On 4/11/2024 at 1:18 PM, MatzeTF said:

    Bei der WARP ist das allerdings der Wallbox-interne Zähler, den du nicht überschreiben kannst.

    Überschreiben nicht, aber Löschen und die null als API-Zähler neu anlegen funktioniert auch 🙃

    Grundsätzlich würde ich @MatzeTF aber zustimmen, d. h. wenn ich das jetzt neu implementieren würde (was ich ja vielleicht irgendwann mal muss), dann mit der "richtigen" API...

×
×
  • Neu erstellen...