@e-t0m : Ich hätte noch eine Frage zu folgendem Code Schnipsel:
Das ist ja quasi der "Überladeschutz". Also wo dann mehr ins Hausnetz eingespeist werden soll als nötig damit die Batterie nicht zu voll wird.
Leider verstehe ich die Gleichung hier aber nicht ganz.
Wenn jetzt z.b. deine Batteriespannung 58V erreicht wäre "free_power" ja nur 25W.
Heisst also wenn Send_Power jetzt z.B. nur 200W wäre und PV_Input z.B. 800W dann würden ja auch mit der Gleichung nur 225W vom Soyo raus geschickt werden und der Rest landet in der Batterie.
Hier vertraust du dann dem e-Smart dass er passend eingreift? Verstehe denn Sinn hier nicht wirklich. /p>
Wenn die Batterie voll ist, zeigt das Panel "Pv_w", was ja die "Charge Power" des eSmart ist nur noch die Leistung an die direkt verbraucht wird (Also quasi "send_power" mit den offsets).
Ist es irgendwie möglich die eigentlich wirkliche Eingangsleistung der PV anzuzeigen? Und nicht die "Charge Power".
Hier (skagmo.com - eSmart3 MPPT PV charger review) wird auf den starken Unterschied zwischen der angezeigten Spannung im eSmart und der wirklichen Spannung hingewiesen (etwa 10%) . Wenn ich in deinem esmart_test_py gucke dann korrigierst du dort auch die Spannungsmessung. In deinem Zeroinput Script wird es nicht gemacht.
Hattest du selber nachgemessen dass Anzeige der Spannung doch gut passt? Wenn ich z.B. bei mir dann auf die Spannungsanzeige am Soyo gucke passt das bis auf ca. 0,2V immer mit der Spannungsanzeige vom eSmart.
Moin Rainer,
Ich habe skagmos lib nur minimal verändert: für den Datenexport und einen bug bei der Temperatur korrigiert.
Auch das esmart_test stammt von ihm, daher die Spannungskorrektur.
Meinen esmart habe ich nie kalibriert, vermutlich hat aber jedes Gerät seine eigenen Abweichungen im Rahmen der Fertigung. (Nachtrag: Die Vermutung hat sich bestätigt, jeder eSmart3 weicht anders ab)
Mir sind die Werte auf der DC-Seite nicht so wichtig.
Ob Verluste (z.B. Kabel) oder Messfehler (Geräte), ist nicht so wichtig, solange die Regelung das auffängt.
AC-seitig sollte es schon genauer sein!
Ich meine, mal eine komplette Dokumentation des Datenpakets vom esmart gesehen zu haben, allerdings in chinesisch. Da musst du mal suchen!
Puhh aber ist es nicht gefährlich wenn der e-Smart immer 10% zu wenig anzeigt? Wenn man jetzt die maximale Abschaltspannung im Datenblatt setzt die Spannung aber eigentlich schon 10% höher ist, kann das ja den Akku zerstören.
Klar sollte das BMS der Batterie das abfangen aber dann braucht man es im Script auch nicht mehr...
@e-t0m Jo. Ich werde da vorsichtshalber Mal nachmessen . Leider traue ich meinem Billig Multimeter da auch nicht so. Mal gucken ob ich jemanden finde der was besseres hat zum messen
Moin @e-T0m. Darf ich nochmal fragen welchen Vorteil es hatte den Wechselrichter über den Last Ausgang des Ladereglers und nicht direkt an die Batterie anzuschließen?
Leider ist man beim esmart ja auf die 40A auch am Last Ausgang als Maximalstrom begrenzt. Die Batterie könnte aber ohne Probleme auch größere Entladeströme.
Bin am überlegen die Wechselrichter direkt an die Batterie zu klemmen.
Jo. Ich denke ich werde es so machen dass ich den zweiten Soyo der bestellt ist dann direkt an die Batterie klemme und den ersten Soyo am Esmart lasse Sollte ja für das Script keinen Unterschied machen soweit ich das gesehen habe.
Wenn du die Soyos parallel steuerst, kannst du auch einen Multiplikator für die Messwerte vom Lastausgang einbauen. (Nachtrag: wurde genau so realisiert)
Habe dein Script jetzt erfolgreich bei mir und bei meinem Vater in Betrieb genommen und jetzt läuft es (fast) reibungslos.
Das Ressourcen Problem hatte seine Ursache übrigens im Push-Server des Volkszähler. Lässt man diesen aktiviert, wird der Speicher des Raspberry nach und nach aufgefressen. Habe es jetzt ausgestellt und seitdem läuft der Raspberry 24/7 ohne Probleme (Selbst mein veralteter Raspberry 2B).
Die einzige Sache die sporadisch noch auftritt ist dass das Script zwischendurch mal aussteigt bzw. es irgendwann einfach abbricht. Das kann mal nach einem Tag sein, mal nach zwei Tagen oder nur nach ein paar Stunden. Der Raspberry läuft dann fröhlich weiter aber "screen -r" meldet dann zurück "There is no screen to be resumed" was für mich heisst dass das Script beendet wurde.
Da meine Linux und Python Kenntnisse nur langsam größer werden, suche ich aktuell nach einem Weg um die Ursache herauszufinden. Falls du einen Tip hast, gerne her damit. Könnt es eventuell sein dass das Script abbricht wenn er den eSmart nicht erreichen kann?
Bzgl. deiner Erweiterungen:
Die Mustererkennung des Verbrauchs finde ich eine richtig spannende Sache. Hier melde ich mich gerne freiwillig es zu testen und weiter zu entwickeln. Da ich beruflich aus dem Bereich Regelungstechnik und Simulation komme, könnte ich die Regelung auch simulativ mit entsprechenden Datensätzen in Matlab bzw. Simulink testen und weiterentwickeln. Ich denke dass die Platform dafür die flexiblere ist.
Ich schaue mir die Sachen gerne an sobald sie da sind.
[quote data-userid="9945" data-postid="109394"].... und seitdem läuft der Raspberry 24/7 ohne Probleme (Selbst mein veralteter Raspberry 2B).[/quote] So soll das sein, sehr schön! ?
Probier es aus: zieh den Stecker vom eSmart ab!
Ist am Anfang keine Verbindung da, dann startet das script nicht, mangels Werten. Im Betrieb sollte es einfach stehen bleiben.
Merkwürdig ist, das der "screen" komplett weg ist. Screens sind dem Benutzer zugeordnet, vielleicht hattest du gerade den falschen Benutzer aktiv?
Wenn das script stehen bleibt, kann man immer! noch den screen öffnen und sehen, was passiert ist.
Danke! das freut mich sehr!
Im "Sandkasten" lassen sich nur die Muster an sich erforschen.
Wirklich testen kann man das ganze nur im live-Betrieb, da ja die "Überlagerung" der Einspeisekurve in Echtzeit stattfindet.
Soweit bin ich noch nicht!
Wenn du deine Volkszähler-Verläufe des "16.7" Kanals bei laufender Nulleinspeisung ansiehst, welche Geräte takten bei Dir konstant periodisch?
Konstant periodisch takten natürlich Waschmaschine, Trockner, Spülmaschine etc. die üblichen verdächtigen die du wahrscheinlich schon auf dem Schirm hast.
Oder zielt die Frage noch woanders hin?
Bei mir finde ich aktuell übrigens noch weitere Baustellen jetzt wo wir so schöne sonnige Tage haben und ich alles mal austesten kann :).
Wenn die Batterie voll ist würde ich gerne in manchen Situation trotzdem die volle PV Leistung freigeben wollen was dann initial zu einer Übereinspeisung führt.
Der Grund ist folgender:
-> Wenn ich mein e-Auto per Wallbox "Überschussladung" lade sieht er denn eigentlich möglichen Überschuss der PV Anlage nicht da der Laderegler bei voller Batterie ja die PV-Leistung nach unten zieht und die eigentlich noch mögliche PV-Leistung nicht frei gibt. Das e-Auto regelt dann also nur -und ziemlich genau- auf den Überschuss der großen Anlage wobei er ja mehr haben könnte. Also den Überschuss der PV Anlage wo die Batterie angeschlossen ist.
Habe es im Script jetzt an folgender Stelle gelöst:
ifpv_cont != 0andbat_cont > 53.0: # give some free power to the world, pull down the zero line
free_power = pv_cont #int(( bat_cont - 53.0)*10 *0.5) # 0.5 W / 0.1 V, max depends on esmart "saturation charging voltage"
send_power = free_power * pv_red_factor * 0.9 # 0.9 to still keep a bit of charge to the battery so that Battery can slowly still charge until max Voltage
Ich sende also etwas weniger Leistung raus als von der PV kommt damit die Batterie ab 53V weiter laden kann bis zum Ziel und den Rest haue ich in Netz damit es die Wallbox als Überschuss sieht.
Ist noch nicht richtig elegant.
Denkst du es gibt eine elegantere Stelle im Script wo/wie man es lösen könnte das generell immer die PV-Leistung freigegeben wird die noch eingepeist ins Netz als Überschuss eingespeist werden könnte?