tib_zero_tas - sollte alle 1-60 Minuten mit cron laufen
Funktionsweise der Steuerung:
Erzeugung und Bezug kombinieren und ein 7-Tage-Profil berechnen. Der Verbrauch der preis-gesteuerten Verbraucher / Auto / Klima wird davon abgezogen. (ggf. siehe auch profiler)
Den erforderlichen Bedarf in Reihenfolge der absteigenden Tibber-Preise errechnen, bis die vorhandene Energie im Akku "verteilt" ist.
Dabei wird nach dem höchsten Preis des Berechnungszeitraums die volle Leistung vorgesehen. Vorher sind die 7-Tages-Bedarfswerte nochmal mit dem jeweiligen Preis gewichtet.
timer.txt für die Steuerung von zeroinput erstellen.
Wenn der niedrigste-timer-Preis inklusive der Ladeverluste geringer ist, als der gegenwärtige Preis, wird die PV-Leistung (im Rahmen der Nulleinspeisung) direkt eingespeist. (PV pass through)
"Nebenbei" werden auch tasmota timer (z.B. fürs Auto laden) gestellt, siehe auch tibber_tasmota, für eine rein preisgebundene Steuerung ohne zeroinput und 7-Tages-Profil.
Viel Spaß beim Testen, extra Geld sparen und Umwelt / Netz retten!
Mal sehen was die neue Forensoftware damit macht. -v erbose Ausgabe von tib_zero_tas.py
PVpt = PV pass through = Durchleiten der PV-Leistung insofern notwendig, Nulleinspeisung
using cached volkszähler averages from 2024-11-14 15:00
query volkszähler for energy content:
0 begin 2024-11-14 00:00:00 1731538800000 end 2024-11-14 15:56:16 1731596176000 request duration: 0:00:00.177119 rows: 5412
0 begin 2024-11-14 07:56:44 1731567404000 end 2024-11-14 15:56:16 1731596176000 request duration: 0:00:00.902164 rows: 9
minimum voltage 47.8 V, latest voltage 51.5 V, remaining battery content 1137 Wh
date time price set average sum
2024-11-15T08 38.09 900 360 360
2024-11-14T17 37.87 385 321 681
2024-11-14T18 37.65 326 296 977
2024-11-15T09 37.27 338 338 1315
tibber price avg: 34.57 min: 30.99 max: 38.09 spread: 7.10 (19 %) lt: 34.57 ht: 33.86, 92%lpt 34.29
set lt to max: 31.50
2024-11-14T00 31.42 o
2024-11-14T01 31.19 o
2024-11-14T02 30.74 o
2024-11-14T03 30.29 o
2024-11-14T04 30.19 o
2024-11-14T05 30.29 o
2024-11-14T06 31.62 o
2024-11-14T07 33.07 o
2024-11-14T08 34.44 o
2024-11-14T09 34.06 o
2024-11-14T10 34.27 o
2024-11-14T11 34.17 o
2024-11-14T12 33.79 o
2024-11-14T13 34.48 o
2024-11-14T14 35.26 o
now 2024-11-14T15 36.23 0 PVpt <
T off: 3 4 2024-11-14T16 36.86 0 PVpt <
2024-11-14T17 37.87 385 PVpt <
2024-11-14T18 37.65 326 PVpt <
2024-11-14T19 36.96 0 PVpt <
2024-11-14T20 35.81 0 PVpt <
2024-11-14T21 34.72 0 PVpt <
2024-11-14T22 33.94 0 <
2024-11-14T23 32.70 0 |
2024-11-15T00 32.46 0 |
2024-11-15T01 32.01 0 |
2024-11-15T02 32.05 0 |
2024-11-15T03 31.65 0 |
2024-11-15T04 31.74 0 |
2024-11-15T05 32.24 0 |
2024-11-15T06 34.70 0 PVpt <
2024-11-15T07 36.47 0 PVpt <
2024-11-15T08 38.09 900 PVpt <
2024-11-15T09 37.27 338 PVpt <
2024-11-15T10 35.84 0 PVpt <
2024-11-15T11 35.39 0 PVpt <
2024-11-15T12 33.80 0 |
2024-11-15T13 33.81 0 |
2024-11-15T14 35.01 0 PVpt <
2024-11-15T15 36.18 0 PVpt <
2024-11-15T16 35.25 0 PVpt <
2024-11-15T17 35.53 0 PVpt <
2024-11-15T18 35.35 0 PVpt <
2024-11-15T19 34.59 0 PVpt <
2024-11-15T20 33.09 0 |
2024-11-15T21 32.49 0 |
2024-11-15T22 32.19 0 |
T on: 1 2 2024-11-15T23 30.99 0 >
done.
..und gleich noch ein aktuelles 7-Tage Profil erstellt mit dem profiler.py aus den Daten vom volkszähler.
Leider ist bei dem trüben Wetter mit dem ausgefeiltesten Algorithmus nur wenig zu holen, weil es schlicht nichts zu verteilen gibt.
Erwähnt sei noch die Einspeisung zur Mittagszeit, diese fand in Phasen statt, wo der zu erwartende spätere Preis den Verlust durch ent/laden der Batterie nicht gerechtfertigt hätte. Das gilt übrigens auch weitgehend für das Laden aus dem Netz: lohnt sich derzeit nicht.
PS: Es macht Spaß, mit einem funktionierenden Forum zu arbeiten.
30-Tage-Profil, November 24, Skalen: links: Wh, rechts: ¢
Die neue Steuerung hat fast den ersten Monat hinter sich gebracht.
Die Ergebnisse sind sehr erfreulich, finde ich.
Wie bisher gilt es zu beachten: Teilweise wird der PV-Strom direkt ins Hausnetz durchgeleitet, nämlich wenn der spätere Preis die Speicherverluste nicht ausgleichen kann. Um die Naturdienlichkeit noch zu erhöhen, ließe sich das natürlich auch ändern.
Ein Thema, das mir immer wichtig ist: Effizienz
Sei geraumer Zeit habe ich 3 Soyos parallel angeschlossen, um auch hohe Verbräuche abdecken zu können.
Jetzt im Winter lief davon nur 1 und in den Übergangszeiten 2.
Hier ist ein Thema zum Wirkungsgrad der Soyos.
darin werden folgende Werte genannt:
48W AC Leistung bei 76% Wirkungsgrad
100W mit 88%
ab 200W über 91%
Der Standby-Verbrauch liegt übrigens bei 3W.
Wenn man also 3 Soyos für 150W laufen lässt, dann hat jeder einzelne Soyo 76% Wirkungsgrad bei den anteiligen 50W. (zzgl. 6 W Standby)
Deshalb habe ich eine Lösung dafür entwickelt, die aber nur funktioniert, wenn mehrere Steuerleitungen da sind. Bei mir war seit dem zweiten eSmart3 sowieso eine da. (und immer noch 2 übrig im CAT-Kabel)
vor #1 laufen 2 Soyo mit zusammen ~ 120 W
bei #1 wird einer abgeschaltet und nur noch einer der Soyos deckt den Bedarf mit ~ 110 W: also ~ 8 % Energie gespart.
bei #2 sieht man den Sprung auf über 400W (mein Grenzwert), der den zweiten Soyo wieder aufweckt.
bei #3 geht der Verbrauch wieder zurück auf das vorherige Niveau, aber bei gut erkennbarem Mehrverbrauch durch die 2 Geräte
bei #4 ist wieder ein Sprung, aber mit zwei "wachen" Soyos
bei #5 wieder der Rückgang
bis #6 konsolidiert sich der Verbrauch beider Geräte leicht
bei #6 wird auf 1 Soyo zurückgeschaltet (60 Sekunden Wartezeit)
Da ich im Sommer oft nur 60 W Grundlast habe, aber 3 Soyos aktiv sind, erwarte ich von dieser Regelung einen erheblichen Effizienzsprung.
Und jetzt klemme ich mal den 3. Soyo an die Steuerleitung vom 2. mit drauf und teste den Code weiter. Denn natürlich will ich gerade in den teuersten Preisphasen auch die volle Leistung aller 3 Geräte.
Sobald er bereinigt ist, gibts das dann auch auf Github.
Update: Die Umschaltung ist fertig, aber der Code kommt erst mit einer weiteren neuen Funktion: automatischer zero-shift.
Meine Soyos hatten einen Standby-Verbrauch von ca. 5 Watt. Verantwortlich für knapp die Hälfte davon war der interne 12V->5V Linearregler. Diesen haben ich durch einen einstellbaren DC/DC Schaltregler ersetzt, so ging der Standbyverbrauch deutlich herunter und die Soyos sind nie mehr ausgefallen.
Die Soyo-internen Spannungsmessungen nutzen die 5V auch als Referenzspannung. Da die 5V jetzt einstellbar ist, kann man z.B. die Batterie-Spannungsmessung jetzt abgleichen.
Eine Woche später: 30-Tage-Profil, aber mit etwas Nutzung des Hausakku-Ladegeräts zu günstigen Zeiten.
Bitte beachten, die 23 Tage vorher waren (fast s.o.) ohne Akkuladung aus dem Netz.
Da das Auto-Laden preisgebunden gesteuert ist und auch die Klima-Heizung eher bei mildem Wetter und geringem Preis läuft, wird sie aus dem Bezug herausgerechnet.
Das gilt aber nicht für die Ladung des Akkus aus dem Netz, denn es wäre unmöglich, auch die Erzeugung aufzuschlüsseln.
Für Victron Fans kommt demnächst die Integration für deren Laderegler.
Außerdem die oben schon genannte Umschalt-Automatik für mehrere Soyo Inverter
und die automatische zero-shift Anpassung.
Der Code für die Nulllinien-Nachführung (automatic zero_shift) und die Umschaltung zwischen einem und mehreren Invertern (siehe weiter oben) ist jetzt auf github.
Hier sieht man in das zero-shift Level (in Lila):
Der Härtetest für jede Nulleinspeisung: die Waschmaschine.
Im mittleren Bereich wird geschleudert, ansonsten das bekannte Anlaufen und Auslaufen des Motors.
Natürlich funktioniert das auch für alle anderen taktenden Lasten, bzw. "unruhige" Verbrauchsphasen.
Viel Spaß damit!
(mehr Erläuterungen dazu findet ihr weiter oben im Thema)
Zum Glück kommt langsam die PV-Leistung zurück, denn die tibber-Preise sind durchgehend hoch.
Zu hoch, um den Akku damit zu laden - es würde nicht einmal die Wandlungsverluste abdecken.
Momentan baue ich eine neue Teil-Anlage und die Victron-Fans können sich freuen; es wird ein Victron MPPT dafür benutzt.
Die Integration in zeroinput ist bereits in Arbeit - bitte Geduld.
UPDATE 8.2.25: Der Umbau von zeroinput ist jetzt fertig und wird nur noch ein Weilchen getestet.
So sieht die Ausgabe der komplett überarbeiteten Version von zeroinput jetzt aus:
port name PV W bat V bat I mode P load T int T ext
all combined 842 52.97 15.80 759
/dev/ttyACM0 esmart 60 265 53.10 5.00 MPPT 25 8 out
/dev/ttyACM1 esmart 40 311 52.80 5.90 MPPT 253 32 18 bat
/dev/ttyACM2 VE 150/35 266 53.00 4.90 BULK
timer active: bat discharge 0 %, energy 0/0 Wh, inverter 100 %
voltage correction 53.3 V, dif -0.3 V
no saw detected
input history [782, 775, 768, 759] 1:2 1.2 % 3:4 0.9 %
meter 339 W (auto shift 0 W import), interval 1.00 s, 14:22:24
inverter 759 W limited, PV -94 W, no battery discharge
1: power request 3 x 253 W
2: power request 3 x 253 W
1: /dev/ttyACM0 : esmart 60 status request
1: /dev/ttyACM1 : esmart 40 status request
REC /dev/ttyACM2 : VE 150/35 delay 1.00 s
REC /dev/ttyACM0 : esmart 60 delay 2.93 s
2: /dev/ttyACM0 : esmart 60 status request
REC /dev/ttyACM1 : esmart 40 delay 2.93 s
2: /dev/ttyACM1 : esmart 40 status request
Die neue Version von zeroinput läuft bei mir absolut stabil.
Leider fehlt mir momentan die Zeit um die Dokumentation zu überarbeiten.
Auch tib_zero_tas wartet auf ein Update...
(der Teil für den timer ist stabil!)
Wirklich viel Ertrag; aber doch nicht genug, wenn man heizt und Auto lädt.
Daher lief heute nicht die automatische Preis-Steuerung mit tib_zero_tas, sondern diese simple timer.txt:
# 0000-00-00 for daily repeating, space or tab separated
# battery discharge W if > 100, percentage if <= 100
# date time | ac inverter power W if > 100, percentage if <= 100
# | | | | energy limit in Wh
2025-03-06 07:00:00 100 100 2700
2025-03-06 11:00:00 000 1000 00
2025-03-06 16:00:00 100 100 2700
Zwischen 11 und 16 Uhr war die Leistung der Inverter auf 1kW begrenzt, die Batterie wäre nicht entladen worden.
Vorher und nachher war die Batterie-Entladung unbegrenzt.
Die Ladung des Autos wurde über tasmota timer realisiert.
Die Höchstspannung des Akkus war 54,4V, also so gut wie voll.