Skalierbare high-end, cheap-tech Nulleinspeisung mit Volkszähler-Monitor und tibber-Integration

Wie oben schon angekündigt, lässt sich nun auch die (maximale) Einspeiseleistung der Inverter per timer steuern, das wird in Prozent angegeben.

Dadurch lässt sich der Akku gezielt aufladen, wenn die Leistung der PV durch begrenzte Inverterleistung nicht mehr vollständig "durchgeschoben" wird.

(weil so die Leistungsspitzen gekappt werden, sollte sich auch die Lebensdauer der Inverter verlängern!)

Auch die (maximale) Akku-Entladung lässt sich jetzt feiner per Prozentangabe regeln, anstatt wie bisher nur ein und aus zu schalten.

zum Update auf github

Dies sind die nötigen "Stellschrauben", um zukünftig die genannten Hochpreis / Hochschmutz-Phasen besser abdecken zu können.

Nochmal ganz konkret:

Das macht nur Sinn, wenn ohnehin Strom zugekauft werden muss - aber dann eben lieber den billigeren / weniger schmutzigen Strom.

hier der Thread zum Thema naturdienliches Entladen

# 0000-00-00 for daily repeating, space separated
#                battery discharge W if > 100, percentage if <= 100
# date     time  |   ac inverter power W if > 100, percentage if <= 100
0000-00-00 00:00 50 100
0000-00-00 01:00 40 100
0000-00-00 02:00 30 100
0000-00-00 03:00 20 100
0000-00-00 04:00 30 100
0000-00-00 05:00 90 100
0000-00-00 06:00 100 100
0000-00-00 07:00 100 100
0000-00-00 08:00 100 100
0000-00-00 09:00 80 100
0000-00-00 10:00 50 80
0000-00-00 11:00 20 50
0000-00-00 12:00 10 30
0000-00-00 13:00 10 20
0000-00-00 14:00 10 30
0000-00-00 15:00 20 50
0000-00-00 16:00 50 80
0000-00-00 17:00 80 90
0000-00-00 18:00 100 100
0000-00-00 19:00 100 100
0000-00-00 20:00 100 100
0000-00-00 21:00 100 100
0000-00-00 22:00 90 100
0000-00-00 23:00 70 100

Man sieht also die Werte der maximalen Batterieentladung und maximalen Inverterleistung in Prozent. 10% bedeuten bei meiner Anlage mit 3x900 W Soyo Invertern: 270 W

Selbst mit nur 10% über die Mittagszeit kappt man damit nur die Spitzen im Verbrauch - abgesehen von großen Verbrauchern wie Backofen oder Trockner.

Es ist unmöglich veränderliche PV-Erträge und wechselnde Verbräuche in ein statisches Muster zu pressen! Diese Vorlage soll nur die Richtung aufzeigen, wie man den Eigenverbrauch aus günstigen (sauberen) Zeiten in teuere (dreckigere) Zeiten verlagern kann.

Ich werde das obige Schema deshalb so lange benutzen, bis die automatische Regelung dafür fertig ist. :wink:

Update: So sieht das dann in Echt aus.

Die Werte von 16 bis 17 habe ich nochmal etwas angepasst, ansonsten finde ich das schon richtig gut.

Die Last (Auto, 10A) wird übrigens per tibtasmo und den Tibber Preisen geschalten.

Update 2:

So ganz glücklich war ich mit dem Provisorium dann doch noch nicht, weshalb jetzt:

Ab 53V Spannung die max. Inverterleistung bis 56V auf das tatsächliche Maximum linear hoch gesetzt wird: damit bei ausreichend gefülltem Akku nicht unnötig PV-Leistung zurückgehalten wird.

Auch das ist ein Provisorium: bis die automatische Regelung dafür fertig ist. :wink:

1 „Gefällt mir“

@e-t0m
Moin,
bin seit kurzer Zeit im Ruhestand und habe erst jetzt Zeit, mich wieder um das zu kümmern, was mich vor 40 Jahren neben dem naturwissenschaftlichen Studium interessiert hat. Zu jener Zeit habe ich zwar schon mit Pascal und C herumgespielt, bin aber im Moment noch überfordert, dein Skript zu durchdringen. Da es mich aber reizt, meine Grenzen zu erweitern, möchte ich dich um eine Einschätzung bitten. Wie groß ist der Aufwand das Skript an folgende Konstellation anzupassen?
-Bestehende PV-Anlagen an einer Phase mit örtlich verschiedenen Aufstellungen inkl. Mikrokonvertern, die nicht verändert werden soll/ kann.
-Vorhandener Soyo.
-Vorhandenes Netzgerät, das sowohl I als auch U über 0-10 Volt steuern kann.
-Raspberry Pie.
-Selbstgebastelte Powerwall mit BSM.
Falls du zur Einschätzung kommen solltest, dass ich mir weitere Tage der Einarbeitung in Python ersparen kann, wäre ich über Alternativ-Vorschläge sehr dankbar.
All the best
Ulrich

Hallo @ulrich-krummegmx-de,

für mich ist python die Skriptsprache unserer Zeit. Das Design und die Funktionalität ist herausragend: ein Muss

Erfreulicherweise hat python auch eine flache Lernkurve. Mein Code ist aber relativ "stark integriert" geschrieben, also nicht optimal zum Lernen.

Das Skript ist nur für den beschriebenen Anwendungsfall gedacht, die Steuerung für ein (Netz-) Ladegerät ist nicht vorhanden, fragt sich ob damit die Microwechselrichter "genullt" werden sollen, oder ob der Akku mit billig-Strom geladen werden soll, oder beides?

Da du schon einen Soyo und Pi hast, rate ich Dir, was ich jedem rate: installiere zuerst einmal den Volkszähler, das ist meiner Ansicht nach die größte Hürde.

Ohne vernünftiges Monitoring sind derartige Projekte verantwortungslos bis riskant.

(der Volkszähler ist leider in php geschrieben :wink:

Für Viele ist die größte Schwäche von zeroinput die fehlende Unterstützung von anderen Ladereglern als dem eSmart3.

Viel Erfolg!

@e-t0m

Vielen herzlichen Dank für schnelle und auch umfassende Antwort. Sie entspricht leider ganz und gar meiner Erwartung.

Die 0-Saldierung ist tatsächlich mein Ziel. Habe ein ungutes Gefühl, wenn ich in diesem Zusammenhang von io-broker, node-red (wirklich no dread?) etc. lese. Empfiehlst du weiterhin Python? Und gibt da irgendwo schon ähnliche Ansätze?

Victron MP2 können sowas. Und ich kenne noch @joehuebners Lösung, aber die dürfte mindestens so schwierig sein.

Für weniger enthusiastische Anwender bleibt wohl nur das Victron Universum, im Großen und Ganzen machen die auch solide Geräte.

So schicke Sachen, wie meine Lösung kann (und noch können wird), gibts natürlich nirgends sonst :wink:

Thanks heaps, very much appreciated!

Hallo Zusammen, hat jetzt jemand schon eine fertige Lösung um die Gesamtleistung via mqtt zu empfangen anstatt den Volkszähler zu nutzen. Mein Zähler Kaifa ist leider nicht mit dem Volkszähler kompatibel. Habe aber ein anderes Script laufen das mir die Daten liefert und via mqtt übergibt.

@mastercman
Der volkszähler kann natürlich auch mqtt lesen. Ich rate dringend zur Verwendung das volkszählers, weil das Monitoring einer komplexen Regelung unerlässlich ist.

Einstecken und hoffen ist keine Option.

Die Ladedauer des Autos (blau im Bild) wird nicht berücksichtigt, da wäre noch ein wenig Verbesserung drin.

Den Start gibt das Unterschreiten eines Grenzwertes beim Preis vor.

oha, bin spät dran :smiley:

Hoffe es ist inzwischen nichts kaputt gegangen...

Also, da es dafür einen Fehlerstatus gibt, den man auslesen kann geh ich davon aus, dass eine geringfügige Überschreitung für relativ kurze Zeit ok wäre. Aber 18A statt 13A würde ich mich nicht trauen. Wenn man vorhandene Panels trotzdem nutzen will kann man ja 2 nach West und 2 nach Ost drehen so dass die Sonne nie gleichzeitig senkrecht auf alle scheint. Dann verschenkt man wenig, weil man zwar mittags weniger, dafür aber morgens und abends mehr Ausbeute hat.

1 „Gefällt mir“

Diesmal ein Bild mit gut gefülltem Akku. (kommt bei mir selten vor)

Es zeigt sehr gut, wie die Begrenzung des Timers angehoben wird, damit der Akku nicht zu voll und Energie verschenkt wird.

Der Ladebeginn des Autos ist zufällig nach der Ankunft.

Hier ist jetzt die ganze letzte Woche zu sehen. (links oben sind die Farben bezeichnet)

Ich möchte damit zeigen, wie man mit einfachen Mitteln (ohne Optimierung) den Eigenverbrauch und Netzbezug günstiger und "grüner" hinbekommen kann.

Leider fehlt mir momentan die Zeit um die weiter oben beschriebene Automatik zu entwickeln, aber sie wird kommen... :slight_smile:

Und da kommt sie wieder die trübe Zeit: nur noch 2 Soyos arbeiten.

Hier ist der Versuch, einer Anpassung an die kommenden Gegebenheiten.

Alle Werte bis 100 sind in Prozent. Also unabhängig von der Anzahl der Inverter: volle Leistung

Alle darüber - hier nur 300er - sind Watt. Das dient dazu, Nachts bei "billig Strom" das Auto nicht aus der Batterie zu laden.

0 ist 0, also aus, hier ist das die Entladung der Batterie "über Mittag".

Aber die Inverter schieben die Leistung von der PV ungedrosselt durch.

[quote data-userid="6567" data-postid="212815"]

Victron MP2 können sowas. Und ich kenne noch @joehuebners Lösung, aber die dürfte mindestens so schwierig sein.

Für weniger enthusiastische Anwender bleibt wohl nur das Victron Universum, im Großen und Ganzen machen die auch solide Geräte.

So schicke Sachen, wie meine Lösung kann (und noch können wird), gibts natürlich nirgends sonst :wink:

[/quote]

An dieser Stelle möchte ich gerne meine Victron Multiplus 2 Lösung mit Volkszähler in den Thread einschleifen. Die Lösung stellt eine Nulleinspeisung dar. Es führen ja viele Wege nach Rom. Tatsächlich empfinde ich den Volkszähler als das kleinste Problem.

Ursprünglich wollte ich vieles selber machen. Aus Zeitgründen bin ich dann auf eine Komponenten-Lösung u.a. mit den Victron Geräten eingeschwenkt. Es hatte eine Zeit gebraucht, sich mit den verschiedenen Protokollen, wie dbus, MQTT usw. anzufreunden. Aber irgendwann fügte sich das Bild. Die Geräte sind zuletzt preislich nochmal runter gegangen. Das erwähnte Multiplus 2 3000 ist mittlerweile durch das 5000er ersetzt worden. Mit Zubau weiterer PV war die Leistung nicht mehr ausreichend.

Meine Lösung habe ich hier dokumentiert.

@gorch: Zum Glück verwendet zeroinput keine Umwege wie MQTT, dbus oder andere Spielereien.

Das ist natürlich so nicht gewollt, in billig Zeiten soll nicht der ganze Strom raus gehauen werden!

PV -> AC auf 1 kW limitiert über den Mittag.

Mir ist bewußt, das die Vermischung von W und % verwirrend ist, aber es ist sehr funktional.... :wink:

Update:

Ein kleines Update ermöglicht TAB als Trenner in der timer.txt dadurch kann man jetzt einfach den Bereich in der Tabellenkalkulation kopieren und in die Datei einfügen.

Lange geplant ist übrigens, die Konfiguration aus dem script zu nehmen, damit die Updates leichter zu bewerkstelligen sind. Kommt...

Nach dem ganzen herum Raten, jetzt ein fundiertes timer Profil. :rofl:

Dazu wurde ein stundenbasiertes Lastprofil aus den Volkszähler-Daten berechnet. hier ist das profiler script dafür

Es beinhaltet 14 Tage und summiert die Eigenerzeugung (vom Soyosource) mit dem Netzbezug. (die preisgesteuerte Ladung des Autos wurde abgezogen)

Man sieht, dass über die Mittagszeit (billigster Strompreis) der Inverter komplett abgeregelt ist.

Die Leistung aus der Batterie entspricht dem (preisgewichteten) Lastprofil, auch hier wird Mittags nichts abgerufen.

Damit nun aber an sonnigen Tagen keine Energie verloren geht (Batterie voll), gibt es im zeroinput-script die Vorgabe,

ab 53V Batteriespannung abgestuft Leistung einzuspeisen - im Rahmen der Nulleinspeisung natürlich.

Das hier gezeigte Vorgehen ist der letzte statische Zwischenschritt, vor der lange geplanten vollautomatischen Regelung:

7-Tage Lastprofil berechnen, Tibber Preisphasen ermitteln, optimierte timer.txt erstellen.

Natürlich sind das alles dann nur Mittelwerte und keine wahrscheinlichkeitsbasierte Prognose, wie Andreas das mit dem EnergieOptimierungsSystem macht.

Davon ausgehend:

  • das man ohnehin große Lasten wie Auto laden oder den Backofen, Wäschetrockner (ich mache das aktuell mit tibtasmo) in die billig Phasen legt

  • man regelmäßigen Netzbezug hat - also eher kleine und mittlere PV-Anlagen / Winter

  • das Lastprofil grundsätzlich recht homogen ist

... gehe ich von einer ziemlich effektiven Anpassung aus. Leider kann man das alles nicht komplett vermessen, da man zwei identische Haushalte bräuchte. :wink:

Allerdings lässt es sich mit dem oben genannten profiler-Script gut überprüfen, wenn man Bezug und Einspeisung getrennt hält und den Preis mit anzeigen lässt.

Noch ein wenig Geduld bitte.

Die Automatik hält langsam Einzug. Es gibt eine neue Version von tibber_tasmota.

Damit kann man weiterhin Timer auf tasmota Geräten schalten.

Zusätzlich gibt es einen export der Daten für die timer.txt Datei zur Steuerung der Nulleinspeisung.

Es fehlt jetzt noch der Einbezug der im Akku vorhandenen Energie und der gemittelte Stundenverbrauch für die Hochpreiszeiten.

  • Nach viel herumprobieren gebe ichs auf, hier die Konsolen-Ausgabe einzufügen. Die Forensoftware ist kaputt. -

Anbei ein aktuelles 7-Tage-Profil. Erzeugt mit diesem Script für den Volkszähler.

Hier ist eine ausführlichere Erklärung.

Bitte beachten: die Automatik läuft noch nicht so lange. In einer Woche mache ich dann ein Update.

Hier jetzt das Update:

Ein 7-Tage-Durchschnittsprofil. Alle Werte ohne angegebener Einheit sind in Wattstunden [Wh].

Bitte beachten, dass der PV-Ertrag nicht immer ausreicht um die Hoch-Preis-Zeiten abzudecken - da ist von der neuen Regelung* Steuerung dann eine Verbesserung zu erwarten.

*Nachtrag: die quantitativ-automatische Regelung Steuerung ist jetzt in Erprobung!