Benachrichtigungen
Alles löschen

[Oben angepinnt] flexible high-end cheap-tech Nulleinspeisung mit Soyosource und Volkszähler

360 Beiträge
38 Benutzer
26 Likes
68.1 K Ansichten
E-t0m
(@e-t0m)
Autarkiekönig
Beigetreten: Vor 2 Jahren
Beiträge: 778
Themenstarter  

Vielen Dank für das rege Interesse und die 50'000 Aufrufe!

 

Meine Anlage läuft in der vorgestellten Form jetzt seit über einem Jahr stabil und problemlos vor sich hin.

Allerdings gab es einige Wachstumsschritte, die ich hier mal zusammenfassen möchte, damit man die Skalierbarkeit schön sieht:

Gestartet is das Projekt mit fünf gebrauchten 260er Poly-Modulen (65V) an einem 1200er Soyosource im MPPT Modus als billiger Machbarkeitstest, da die Module so günstig zu mir wollten. (1,3kWp)

Dann kam schnell der Wunsch nach einem Speicher um den Eigenverbrauch besser abzudecken.

Ein 16s 25Ah Akku (1,28kWh) und ein eSmart3 kamen dazu. Steuern und Protokollieren sollte das Ganze ein Raspberry pi mit Volkszähler und Lesekopf am Stromzähler.

Die Entwicklung von zeroinput startet im Frühjahr 22.

Dann kam ein 390er PV-Modul an einem elejoy step-up Regler dazu, um mehr Sonne auf der Westseite einzufangen. (1,69kWp)

Ein zweiter 1200er Soyosource (900W am Akku) kam dazu, um Verbrauchsspitzen besser zu bedienen.

Drei weitere 390er Mono-Module brachten einen Schub über die Leistungsgrenze der Verkabelung. (2,86kWp)

Dann löste ein 16s 230Ah Akku (11,7kWh) den kleinen 25Ah Akku ab. (stark überdimensioniert)

Der dritte 1200er Soyosource kommt dazu, um den Eigenverbrauch weiter zu erhöhen und um Lastspitzen von den anderen beiden zu nehmen.

Jetzt kommen noch drei weitere 405er Mono-Module dazu, der 60A eSmart3 schafft das aber nicht mehr alleine. (4,075kWp)

Der zweite eSmart3 (40A) ist bereits bestellt.

(mehr Module bringe ich beim besten Willen nicht mehr unter...)

 

Es wird also bald ein Update der Regelung geben, um zwei (oder mehr?) eSmart3 verwenden zu können.

Ob dafür eine zweite Steuerleitung notwendig wird, weiß ich noch nicht.

Der eSmart3 kann aber trotzdem erstmal ohne Datenverbindung arbeiten, da ich die Leistung provisorisch im script multiplizieren werde, bis das geklärt ist.

Bei Anlagen mit gleichen Modulen und gleicher Ausrichtung / Verschattung, reicht es im Grunde, wenn man nur einen Regler ausliest!

 

Weiterhin viel Spaß beim Nachbauen!

Ein Inhaltsverzeichnis für dieses Thema.

klick: meine flexible high-end cheap-tech Nulleinspeisung


   
AntwortZitat
E-t0m
(@e-t0m)
Autarkiekönig
Beigetreten: Vor 2 Jahren
Beiträge: 778
Themenstarter  

Aktueller Stand der Dinge:

Die Hardware ist fertig montiert.

Der Versuch, die zwei eSmart3 Regler parallel an einer RS485 Leitung zu betreiben, ist erfolglos geblieben.

In der Dokumentation zur Kommunikation des MPPT Reglers stand zwar "multimachine communication",

aber wie man Adressen zuweist bzw ausliest, konnte ich nicht herausfinden.

Egal mit welcher ID man den Status anfordert, antworten beide Geräte wild durcheinander (nutzlos) und nur selten kommt ein Datensatz brauchbar durch.

 

Also bekam der zweite Regler nun eine eigene Leitung mit eigenem USB-RS485 Adapter.

Damit funktionieren beide Regler jetzt stabil.

Jetzt bleibt nur noch die Integration in die Regelung. Nachtrag: Läuft gut, der Code kommt bald auf github.

klick: meine flexible high-end cheap-tech Nulleinspeisung


   
AntwortZitat
 R300
(@r300)
Vorsichtiger Stromfühler
Beigetreten: Vor 9 Monaten
Beiträge: 47
 

Wie ist denn bei deiner Lösung die Latenzzeit von der Messung am Smartmeter (oder Shelly?) bis der Soyo sein neues Kommando bekommt?

Sorry, wenn ich das übersehen habe und es irgendwo steht, aber der Thread ist lang. 😀

 

Ich konnte auf ca 250ms runter kommen ohne Oszillation Effekte.

Das ganze mit Esphome und dem Soyosource component von syssi + eine Anpassung von mir, um die Oszillation und das Überschießen (kurze Über-/Untereinspeisung) in den Griff zu bekommen. 😉


   
AntwortZitat
E-t0m
(@e-t0m)
Autarkiekönig
Beigetreten: Vor 2 Jahren
Beiträge: 778
Themenstarter  

Veröffentlicht von: @r300

Sorry, wenn ich das übersehen habe und es irgendwo steht, aber der Thread ist lang. 😀

Stehen aber weiterführende Dinge drin, wie z.B. soyo ramp speed von 400W/s oder das 1s Intervall vom Stromzähler.

 

klick: meine flexible high-end cheap-tech Nulleinspeisung


   
AntwortZitat
E-t0m
(@e-t0m)
Autarkiekönig
Beigetreten: Vor 2 Jahren
Beiträge: 778
Themenstarter  

Der weit verbreitete Code zur Erzeugung des Datenpakets für den Soyo scheint nicht korrekt zu sein.

Mit diesem Code konnte ich von 1-900 W keine Anomalien mehr feststellen, wäre nett wenn das jemand verifizieren würde! (Danke @johuebner dafür).

(der Fix ist auf github!)

pu = power >> 8
pl = power & 0xFF
cs = 264 - pu - pl
if cs > 255: 
	if power > 250:	cs -= 256
	else:		cs -= 255

sieht dann so aus:

Die Abweichung sind dem Verbrauch geschuldet, nicht dem Algorithmus.

Ich freue mich auf Rückmeldungen!

klick: meine flexible high-end cheap-tech Nulleinspeisung


   
AntwortZitat
 R300
(@r300)
Vorsichtiger Stromfühler
Beigetreten: Vor 9 Monaten
Beiträge: 47
 

Was war denn die Anomalie? Ich könnte das testen, aber ich wüsste gerne was das Problem vorher gewesen ist, damit ich weiß worauf ich achten soll. Smile

 

In C++ ist der Teil mit > 255 eh mit unit8 erledigt, da es dann ja überläuft...

 

  uint8_t frame[8];
  frame[0] = address;
  frame[1] = 0x56;
  frame[2] = 0x00;
  frame[3] = 0x21;
  frame[4] = measurement >> 8;
  frame[5] = measurement >> 0;
  frame[6] = 0x80;
  frame[7] = 264 - frame[4] - frame[5];

  this->write_array(frame, 8);
  this->flush();

   
AntwortZitat
 R300
(@r300)
Vorsichtiger Stromfühler
Beigetreten: Vor 9 Monaten
Beiträge: 47
 

Veröffentlicht von: @e-t0m

Gerade ist mir ein sehr aussagekräftiger Abschnitt im Tagesverlauf aufgefallen:

-- attachment is not available --

 

Hier sieht man, wie der Backofen den Akku leer taktet.

folgende Komponenten der Regelung spielen dabei zusammen:

  • Begrenzung des Entladestroms der Batterie, hier 2kW vom Akku + PV-Leistung
  • Rampenmodus, bei großen Sprüngen im Verbrauch
  • Korrektur der Batteriespannung (s.o.)
  • Leistungsanpassung an die Batteriespannung, die Entladekurve von LFP fällt rasant ab

 

Wie kommt denn hier das Überschießen nur beim Hochregeln zustande?

 


   
AntwortZitat
E-t0m
(@e-t0m)
Autarkiekönig
Beigetreten: Vor 2 Jahren
Beiträge: 778
Themenstarter  

Veröffentlicht von: @r300
Was war denn die Anomalie? Ich könnte das testen, aber ich wüsste gerne was das Problem vorher gewesen ist, damit ich weiß worauf ich achten soll. Smile

In C++ ist der Teil mit > 255 eh mit unit8 erledigt, da es dann ja überläuft...

Oben hatte ich vergessen, den Fix auf github zu verlinken. Der Bug bestand darin, bei hohen Werten des niedrigen Bytes eine ungültige Prüfsumme zu erzeugen. Das produziert bei manchen Leistungsanforderungen (> ~250,500,750) Sprünge in der Erzeugung, da die Regelung die ausgefallene Einspeisung "kompensiert". Worauf hin ggf. wieder in einen fehlerhaften Bereich geregelt wird. Leider fand der Bug im Rahmen eines Bugfix Einzug in den Code........

Prüfe mal deinen Code mit Werten von 1-900, immer +1 und lange genug, damit dein Monitoring da auch mitkommt. Sollte das uint8 den Effekt erschlagen, so wirst du eine gerade Linie bekommen, so wie meine oben gezeigte.

Sollten "fiese Spikes" bei Werten unter 20 auftauchen, adaptiere mal meinen Code.

Danke für die Mithilfe!

Wie kommt denn hier das Überschießen nur beim Hochregeln zustande?

Das ist kein Überschießen, sondern ein schnelles Abregeln beim Einsetzen der Last. Unter 50V wird per Leistungskurve spannungsgeführt ab-geregelt, aber durch die Takt-Pause steigt diese natürlich zwischenzeitlich an.

klick: meine flexible high-end cheap-tech Nulleinspeisung


   
AntwortZitat
 R300
(@r300)
Vorsichtiger Stromfühler
Beigetreten: Vor 9 Monaten
Beiträge: 47
 

Ich habe keine Sprünge, aber ein paar kleine Lücken.

Also der Soyo reagiert nicht auf jeden +1 Schritt, sonern lässt zwischendurch 2-3 aus. (Wobei das schwer zu sagen ist, ob da die Messung einfach zu ungenau ist. Die schwankt ein paar W hin und her.)

Ich mache mal später so ein Diagramm, damit man das besser sehen kann.


   
AntwortZitat
E-t0m
(@e-t0m)
Autarkiekönig
Beigetreten: Vor 2 Jahren
Beiträge: 778
Themenstarter  

Veröffentlicht von: @e-t0m

Jetzt bleibt nur noch die Integration in die Regelung. Nachtrag: Läuft gut, der Code kommt bald auf github.

Es hat dann doch fast 2 Monate gedauert, aber in dieser Jahreszeit baut eh kaum jemand PV-Anlagen.

Es ist ein sehr umfangreiches Update geworden, die Version ist nun 1.1:

- Unterstützung für mehrere eSmart3 MPPT-Regler

- schnellere Regelung der soyosource Inverter

- neu strukturierte Ausgabe auf der Konsole (verbose)

Viel Spaß damit!

 

klick: meine flexible high-end cheap-tech Nulleinspeisung


   
AntwortZitat
(@dingsbums)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 35
 

Hallo, hat bitte noch jemand die Software um den Esmart3 zu konfigurieren? Die Links auf der Herstellersite führen mich ins leere.


   
AntwortZitat
E-t0m
(@e-t0m)
Autarkiekönig
Beigetreten: Vor 2 Jahren
Beiträge: 778
Themenstarter  

Veröffentlicht von: @dingsbums

Hallo, hat bitte noch jemand die Software um den Esmart3 zu konfigurieren? Die Links auf der Herstellersite führen mich ins leere.

funktioniert das? http://www.mediafire.com/file/mt77gai7xxzig1g/install_SolarMate_CS_Windows.exe

klick: meine flexible high-end cheap-tech Nulleinspeisung


   
AntwortZitat
(@dingsbums)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 35
 

Veröffentlicht von: @e-t0m

Veröffentlicht von: @dingsbums

Hallo, hat bitte noch jemand die Software um den Esmart3 zu konfigurieren? Die Links auf der Herstellersite führen mich ins leere.

funktioniert das? http://www.mediafire.com/file/mt77gai7xxzig1g/install_SolarMate_CS_Windows.exe

Ganz herzlichen Dank, funktioniert.

 


   
AntwortZitat
(@fabian_s)
Newbie
Beigetreten: Vor 1 Jahr
Beiträge: 4
 

Hallo zusammen,

bisher lief das Scipt ganz wunderbar. In Vorbereitung für den 2. eSmart habe ich den rs485 Adapter tauschen müssen. Nach dem Update und den üblichen Anpassungen startet nun das Script nicht mehr. Nachdem ich alle Änderungen rückgängig gemacht habe tut sich nun gar nichts mehr. Hast du eine Idee?

 

Danke und viele Grüße

Fabian

Traceback (most recent call last):
  File " Link entfernt ", line 187, in <module>
    print("%s, voltage" % (strftime("%H:%M:%S")),d['bat_volt'],'V, PV power',d['chg_power'],'W, load power',d['load_power'],'W\n')
KeyError: 'bat_volt'
vzlogger@raspberrypi:/home/pi$

   
AntwortZitat
E-t0m
(@e-t0m)
Autarkiekönig
Beigetreten: Vor 2 Jahren
Beiträge: 778
Themenstarter  

Konfiguriere mal nur den 1. eSmart3 - nur einen USB / RS 485 einstecken, die Verbindung mit dem eSmart klappt nicht. Falscher /dev/node?

Hast du auch die esmart library aktualisiert? https://github.com/E-t0m/esmart_mppt

klick: meine flexible high-end cheap-tech Nulleinspeisung


   
AntwortZitat
Seite 22 / 24
Teilen: