Fronius Symo Hybrid + GO-E Charger > Wie Überschuss ausrechnen?

  • Also an die Daten komme ich ja, wie Eingangs beschrieben. ;)

    Eine simple Abfrage über den Browser liefert mir ja eine Antwort im JSON Format.

    Sieht dann ungefähr so aus:


    P_Akku = Hausspeicher Bezug (in Watt)

    P_Grid = Netzbezug (in Watt)

    P_Load = Eigenverbrauch (in Watt)

    P_PV = Produktion (in Watt)


    Nur wenn ich jetzt den "Überschuss" so ausrechne:

    P_Ueberschuss = P_PV - P_Load - P_Akku


    Dann ändert sich ja P_Load sobald ich meine Wallbox anpasse und bei der nächsten Aktualisierung (eventuell alle 10 sek) würde der ja wieder runterregeln weil ja so viel verbraucht würde. Das ist mein Grundproblem an der Sache.

    Ich denke mal ich müsste den momentanen Verbrauch meiner Wallbox "rausrechnen" um hier eine valide Steuerung realisieren zu können. Das ständige Schwanken tut weder dem Auto noch der Wallbox was. Das ist absolut kein Problem. Wenn ich mit meinem Auto Rekuperiere erzeuge ich teilweise Lasten von bis zu 60kw im Akku. Da ist der Ladestrom (6 - 20A) absolut kein Problem.

    • Hilfreichste Antwort

    naja - in etwa so:


    die Pause, damit nicht dauern geregelt wird

    6,63 kWp AXIworldpremium 20xAC-300M/60S + 2xAC-315MH/60S mit SolarEdge SE5k mit Display + Hyundai IONIQ Plug-In

  • Hallo MrF! Danke für den Pseudo Code! Ich schaue ihn mir bei Gelegenheit mal an und melde mich wenn ich was zum Laufen bekommen habe. Heute steht erst mal Homeoffice an. Vielleicht komm ich nebenbei ein wenig dazu.


    VG

  • So ich bin schon ein wenig weiter gekommen mit etwas Python auf dem Raspberry. Folgender Code gibt mir schon mal die Werte schön aus. Muss ich jetzt nur noch die Logik der Ladungssteuerung programmieren.


    Was mich hier etwas wundert ist, dass bei den Angaben des WR hier 3120 W ins Netz gehen aber laut Rechnung 3301 Überschuss ist. Mache ich hier irgendwas falsch? Für die Steuerung brauche ich doch eigentlich nur den einen Wert oder? Den der ins Netz eingespeist wird. Der Wert Überschuss ist ja Quatsch eigentlich...


    Ausgabe:


    Code
    pi@raspberrypi ~/Scripts $ sudo python test_GetDataFromPV.py
    Last       :  546 W
    Netz       :  -3120 W
    Akku       :  -12 W
    PV         :  3835 W
    ------------------------------------------------
    Ueberschuss:  3301 W



    Code:


  • Ich glaube ich hab es jetzt. Wollte auch die Regelung mit Akku noch haben (darf bis 60% entleert werden aber erst wieder ab mind. 70% weitermachen). Der "Warte" Intervall ist 30 Sekunden. Wenn man weniger nimmt regelt er sich tot.


    Wenn ich jetzt alle Werte und Vorzeichen richtig programmiert habe, sollte es also funktionieren. Werde ich morgen sehen wenn die Sonne wieder scheint. Muss jetzt nur noch das Script automatisch bei Start des RPI starten lassen. Danke für eure Hilfe bisher! So findet der alte RPI doch noch eine Verwendung ;)


    So sieht der Code aus:


  • Ich bin jetzt nicht der Software Experte, aber warum nimmst Du nicht die Open WB Software. Die läuft doch auf dem Raspberry und kann eigentlich alles was Du brauchst. Fronius Daten auslesen, Visualisierung, Überschusssteuerung des Go-E Chargers und den Speicher Regeln. Alles fix und fertig und sehr stabil.

  • moggmogg alle fertigen Lösungen die ich mir bisher angeschaut habe setzen mind. einen Raspberry 3 voraus. Ich habe aber gerade mal die Version 1. Kannst du definitiv vergessen dass da zum Laufen zu bekommen.


    Außerdem hatte ich den noch rumliegen und die Doku der APIs des WR und des Chargers sind ja frei zugänglich. Somit habe ich Spaß beim basteln und eine Lösung die mich etwas Zeit dafür aber 0€ kostet. ;)

  • Ich versuche gerade durch den Code durchzusteigen (kenne aber die Sprache nicht...) Was ist excess-battery für ein Wert?


    time.sleep bwirkt eine Pause von 30s, richtig? In welchem Zeitraster kannst Du Werte auslesen? Aus Regelungs-Technik-Sicht würde ich Folgendes machen:


    - Die Werte aus dem Prozess so oft wie möglich (minimal mögliches Zeitraster, Leistungsfähigkeit des Rechners) entnehmen, sonst verschenkst Du Information. Wenn der Rechner nicht schnell genung sein sollte, trotzdem so viele Werte wie möglich messen und den Regler dann mit gleitenden Mittelwerten der Messwerte laufen lassen.

    - charge_power ist der Ladestrom in A, oder? Was Du da programmierst ist im Prinzip ein I-Regler. Wenn Du den Ladestrom in jedem Regelschritt um 1A hoch oder runter zählst, führt das zu Deinem "totregeln". Dann aber immer 30s zu warten, ist die falsche Maßnahme. Du machst den I-Regler weniger "aggressiv" und weniger zu Schwinungen neigend, wenn nicht in jedem Schritt um 1A hochzählst, sonder viel weniger. Also: So oft wie möglich messen, aber den Ladestrom in sehr viel kleineren Schritten pro Regler-Durchlauf verändern. Du braucht dafür eine Variable, die Dezimalzahlen darstellen kann. Klar, Du kannst den Strom nur in 1A-Schritten ändern. Dann ist der Ausgabewert an die Wallbox der auf Integer gerundete Dezimalwert.

    Man könnte den Wert, der dazugezählt oder abgezogen werden muss, auch errechnen (dazu braucht man aber die Abtastrate des Reglers und kompliziert ist es auch). Einfach ausprobieren: Den Regler erst mal "lahm" einstellen, also kleine Werte addieren oder subtrahieren. Damit müsste es laufen. Wenn die Reaktion zu langsam erscheint, die Veränderung pro Rechenschritt erhöhen. Falls zu "hektisch", Veränderung verringern.


    PS: Ich habe mich nicht im Detail durch das Programm durchgewühlt, also nicht die Vorzeichen oder die Ranbedingungen für die Schleife überprüft.

    PSS: Ich finde das Ganze spannend, da ich auch einen Fronius-WR habe, immer schon mal mit einem Raspi spielen wollte und ein E-Auto bestellt habe......

  • Man kann zwar die Werte der PV Anlage sehr häufig abfragen aber je höher der Abfrageintervall desto mehr Leistung brauche ich (ist noch ein Raspberry der 1. Generation von 2011 mit 800 MHz und 256 MB RAM, also nicht allzu viele Leistungsreserven) und desto mehr Netzwerkverkehr habe ich. Des Weiteren kann ich den Regel Befehl nicht zu oft zur WB schicken weil die dann "dicht" macht und keinen Response mehr schickt. Deswegen die 30 Sekunden. Das reicht aber vollkommen aus.


    Ich hätte auch gern auf ein paar Stellen nach dem Komma die Ampere geregelt aber die Wallbox akzeptiert nur Ganzzahlen von 6-20 beim Regeln der Stromstärke.


    Es ist mit der momentanen Lösung natürlich nicht Serienreif oder ähnliches aber eine Quick'n'dirty Lösung die "für mich" gut funktioniert.



    Ich konnte das Script heute auch testen. Es regelt wirklich gut genug für mich. Wichtig ist ja einfach nur dass ich nicht für Stunden aus dem Netz Strom beziehe und ich nicht manuell an der WB Regeln muss.


    Darf man fragen für welches E-Fahrzeug du dich entschieden hast?


    PS: Die Programmiersprache ist übrigens Python in der Version 2.7

  • Fast vergessen: der Wert excess_battery beschreibt die zur Verfügung stehende Leistung (den Überschuss) der Batterie (diese kann ich mit max. 2450 Watt entladen, also hab ich im Script den Wert fest eingetragen). Ich möchte ja mind. 60% noch im Akku behalten damit ich mein Haus über Nacht mit Strom versorgen kann. Sobald dieser Wert erreicht ist schaltet das Script komplett ab. Ich weiß nicht ganz sauber aber es tuts erst mal.