Wir wechseln das Forum am 14.11.24 auf die Forensoftware Discourse. Zwischen Montag Abend und Dienstag Nachmittag wird das Forum deaktiviert. Danach sind wir hoffentlich mit neuem Forum inkl. der vorhandenen Beiträge wieder am Start! Hier zum Forenbeitrag!
@matzedonien2
Ich habe es jetzt mit Deiner Venus OS Version 3.13 und mit der neuesten Version 3.20~35 getestet und das Script lief problemlos bei mir.
Also eigentlich habe ich kein Problem festgestellt.
Es kann aber sein das Dein BMS die SOC-Werte anders ausgibt als bei mir, deshalb habe ich nochmal leicht Änderungen am Code gemacht.
Die Versionsnummer habe ich so gelassen. Siehe https://raw.githubusercontent.com/christian1980nrw/Spotmarket-Switcher/main/scripts/controller.sh
Wenn Du nochmal neu installierst und es wieder auftritt, veränderst Du entweder die Config versehentlich so das es nicht mehr funktioniert
oder Du bist mit einem falschen Texteditor unterwegs (z.B. unter Windows)...
Gruß!
Christian
Das ist ja höchst interessant. Ich teste nun deine neueste Version des Codes und melde mich dann gleich.
Hi,
es ist für mich nicht verständlich und ich kann nicht nachvollziehen, wo bei mir der Fehler liegt. Ich habe vorhin das komplette System neu aufgesetzt. D.h.
1. SD-Karte vom Raspberry Pi formattiert und Venus OS large in Version 3.13 neu aufgespielt.
2. dbus-serialbattery installiert und konfiguriert. Ich habe übrigens ein JBD BMS.
3. die komplett neueste Version des spotmarket-switcher heruntergeladen (mit dem wget Befehl)
4. Die heruntergeladene Datei mit dem folgende Befehl installiert
DESTDIR=/ sh victron-venus-os-install.sh
5. Dann mit dem Befehl: nano /data/etc/Spotmarket-Switcher/sample.config.txt geöffnet und bisher NICHTS geändert und als config.txt wieder gespeichert.
6. Dann habe ich mit dem Befehl sh /data/etc/Spotmarket-Switcher/controller.sh gestartet.
Erneut sieht das dann so aus:
root@raspberrypi4:/# sh /data/etc/Spotmarket-Switcher/controller.sh
I: Bash Version: GNU bash, version 5.0.18(1)-release (arm-ve-linux-gnueabi)
I: Spotmarket-Switcher - Version 2.4.9
[|] Loading...Config validation passed.
I: aWATTar today-data is up to date.
I: aWATTar tomorrow-data does not exist, fetching data.
I: Please be patient. First we wait 26 seconds in case the system clock is not syncronized and not to overload the API.
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2881 100 2881 0 0 30978 0 --:--:-- --:--:-- --:--:-- 30978
I: File '/tmp/awattar_tomorrow_prices.yaml' has no tomorrow data, we have to try it again until the new prices are online.
Data available for 24 hours.
I: Please verify correct system time and timezone:
Sat Jan 6 12:46:47 CET 2024
I: Current price is 9.91600 Cent/kWh energy price.
I: The average price will be 8.87246 Cent/kWh energy price.
I: Highest price will be 10.42700 Cent/kWh energy price.
I: Sorted prices: 1:7.30100 2:7.30100 3:7.45900 4:7.51000 5:7.61300 6:7.98700 7:8.02000 8:8.13900 9:8.22500 10:8.65700 11:8.80000 12:8.84000
13:9.21400 14:9.22300 15:9.25500 16:9.50900 17:9.52200 18:9.73000 19:9.90000 20:9.91600 21:9.98500 22:10.04300 23:10.36300 24:10.42700
/data/etc/Spotmarket-Switcher/controller.sh: line 1158: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1158: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1158: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1158: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1158: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1158: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1158: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1158: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1158: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1158: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1158: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1158: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1158: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1158: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1158: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1158: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1158: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1158: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1158: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1158: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1158: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1158: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1158: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1158: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1193: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1193: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1193: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1193: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1193: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1193: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1193: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1193: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1193: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1193: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1193: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1193: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1193: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1193: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1193: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1193: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1193: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1193: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1193: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1193: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1193: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1193: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1193: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1193: [: : integer expression expected
I: Charge at prices: 1 2 3
I: Dynamic ESS discharge (depending SOC) at prices:
I: Switchable sockets at prices: 1 2 3
W: skip Solarweather. not activated
W: skip Victron Charger. not activated
D: skip Fritz DECT. not activated
D: skip Shelly Api. not activated
root@raspberrypi4:/#
Wenn es bei dir läuft, dann muss ich doch irgendwas an meinem Weg falsch gemacht haben?!? Habe ich irgendeinen Befehl vergessen?
Ich kann leider nur Anleitungen befolgen und habe von den Programmiersprachen leider keine Ahnung.
Vielen lieben Dank!
Gruß
Matthias
Spannend, aber für mich natürlich unverständlich ist, dass ein erneutes ausführen der controller.sh nun andere meldungen gebracht hat. Geändert hat sich nur, dass nun offenbar 48h Werte vorliegen. Aber die Fehlermeldungen sind andere. Nun steht überall, dass eine "integer expression expected" wurde und nicht wie bei den 24h Werten oder auch gestern ( -ge: unary operator expected). Was das natürlich nun bedeutet, kann ich natürlich nicht sagen. Die änderung in deinem letzten Code haben auf jeden Fall irgendwas bewirkt.
root@raspberrypi4:~# sh /data/etc/Spotmarket-Switcher/controller.sh
I: Bash Version: GNU bash, version 5.0.18(1)-release (arm-ve-linux-gnueabi)
I: Spotmarket-Switcher - Version 2.4.9
[/] Loading...Config validation passed.
I: Fetching today-data data from aWATTar.
I: Please be patient. First we wait 27 seconds in case the system clock is not s yncronized and not to overload the API.
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2881 100 2881 0 0 12580 0 --:--:-- --:--:-- --:--:-- 12580
I: aWATTar tomorrow-data does not exist, fetching data.
I: Please be patient. First we wait 27 seconds in case the system clock is not s yncronized and not to overload the API.
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 3845 100 3845 0 0 55724 0 --:--:-- --:--:-- --:--:-- 56544
Data available for 48 hours.
I: Please verify correct system time and timezone:
Sat Jan 6 13:16:38 CET 2024
I: Current price is 9.52200 Cent/kWh energy price.
I: The average price will be 8.75256 Cent/kWh energy price.
I: Highest price will be 10.48500 Cent/kWh energy price.
I: Sorted prices: 1:7.18600 2:7.20800 3:7.30100 4:7.30100 5:7.34600 6:7.45900 7: 7.49000 8:7.51000 9:7.61300 10:7.67600 11:7.76900 12:7.98200
13:7.98700 14:8.02000 15:8.13900 16:8.17900 17:8.22500 18:8.38 600 19:8.40800 20:8.43400 21:8.48100 22:8.48600 23:8.65700 24:8.71500
25:8.80000 26:8.80100 27:8.84000 28:8.86600 29:8.91400 30:9.11 700 31:9.21400 32:9.22300 33:9.25500 34:9.33100 35:9.34200 36:9.50900
37:9.52200 38:9.73000 39:9.90000 40:9.91600 41:9.98500 42:10.0 4300 43:10.05000 44:10.17700 45:10.35500 46:10.36300 47:10.42700 48:10.48500
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1234: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1269: [: : integer expression expected
I: Charge at prices: 1 2 3 4 5 6
I: Dynamic ESS discharge (depending SOC) at prices:
I: Switchable sockets at prices: 1 2 3 4 5 6
W: skip Solarweather. not activated
W: skip Victron Charger. not activated
D: skip Fritz DECT. not activated
D: skip Shelly Api. not activated
Du hast Recht, ich kann das Problem mit Deinen Steps so nun nachvollziehen und schaue wo der Fehler ist.
Melde mich gleich.
Das Problem liegt an der Beispielkonfiguration, es ist also kein echter Fehler.
Setz bitte use_victron_charger=1 , dann sind die Fehlermeldungen weg.
Ich schaue das das Script das abfängt in der nächsten Version, ohne aktivierten Charger kann natürlich auch kein SOC gelesen werden.
@christian1980 Vielen Dank!!! Es klappt!! keine Fehlermeldung mehr. Nun muss ich mal schauen, was passiert.
Ein paar einfache Fragen habe ich noch.
1. Wenn ich den Raspberry Pi neu starte, startet das tool automatisch wieder?
2. Die Abfrage der aktuellen Strompreise läuft vollautomatisch. Kann ich irgendwie kontrollieren ob das tool gerade läuft?
3. Kann ich das tool über irgendeinen Befehl stoppen oder muss ich einfach den use_victron_charger=0 setzen?
Dann noch zwei inhaltliche Fragen.
4. Sind diese Werte in kWh oder MJ? Da du in deinem Beispiel der Speicherkosten von einer Nutzbaren Kapazität von 4,5kWh aus gehst, denke ich, dass es sich hier um MJ handelt?
# Solar energy thresholds to abort operations:
# If the expected solar energy (in megajoules per square meter) exceeds these values,
# operations like charging will be aborted to utilize solar energy instead.
# To find the kilowatt hour value from megajoules, divide by 3.6.
abort_solar_yield_today=10.0
abort_solar_yield_tomorrow=15.0
Welches wären hier gute Werte für meinen Speicher mit 14 kWh Nennkapazität?
5. Ich habe eine PV-Anlage mit 9kW welche über Wechselrichter direkt in das Hausnetz einspeisen. Mein Multiplus lädt oder entlädt den Speicher. Die Verluste die angegeben sind, kann ich also irgendwie nachvollziehen. Ich habe aber weitere 4,2 kW über einen Victron Laderegler direkt an die Batterie angeschlossen. Der Laderegler ist auch mit dem Raspberry verbunden und wird entsprechend gesteuert. DC seitige Überschüsse werden dann über den Multiplus eingespeist. Was mache ich aber nun mit den Verlusten? theoretisch müsste dieser Anteil des in die Batterie eingespeisten Stroms mit anderen Verlusten gerechnet werden. Angenommen diese Verluste würden nur 12% betragen, kann ich dann einen Mittelwert aus beiden nehmen und diesen als Verluste ansetzen? z.B. (9kW x 23% + 4,2kW x 12%) / 13,2kW = 19,5%
Wobei mir hier gerade einfällt, dass ich hier die Verluste bei Ladung über das Netz natürlich voll habe. Um aber die Kosten je kWh aus Netz und aus PV vergleichen zu können, müsste ich doch dem Netz z.B. 23,3 % Verluste und dem Strom aus PV die besagten 19,5% verluste zuordnen können oder?
Das ganze passt natürlich nur so richtig, wenn die ausrichtung usw. der Modulfelder gleich ist. Wenn dem nicht so ist, dann kann der Anteil vom 9kW Feld oder dem 4,2 kW Feld natürlich unterschiedlich sein und der Mittelwert passt nicht.
Gruß Matthias
@christian1980 Vielen Dank!!! Es klappt!! keine Fehlermeldung mehr. Nun muss ich mal schauen, was passiert.
Ein paar einfache Fragen habe ich noch.
1. Wenn ich den Raspberry Pi neu starte, startet das tool automatisch wieder?
Ja, wenn Du mit dem Installer installiert hast, überlebt es sogar Firmware Updates. Nach jedem Firmware Update wird allerdings ein zweiter Reboot benötigt.
Kontrollieren kannst Du das mit dem befehl crontab -e Über die Crontab wird das Script zur jeden vollen Stunde ausgeführt.
2. Die Abfrage der aktuellen Strompreise läuft vollautomatisch. Kann ich irgendwie kontrollieren ob das tool gerade läuft?
Du findest die Logdatei im Ordner /tmp Im Log kannst Du sehen was passiert ist zu jeder vollen Stunde. Beim Reboot geht es allerdings verloren.
3. Kann ich das tool über irgendeinen Befehl stoppen oder muss ich einfach den use_victron_charger=0 setzen?
Ja, mach das am besten so. Die Crontab wird bei jedem Neustart wieder neu angelegt, das würde sonst wieder aktiviert.
Die Version die Du jetzt online auf Github findest, bringt dann auch keine Fehler mehr.Dann noch zwei inhaltliche Fragen.
4. Sind diese Werte in kWh oder MJ? Da du in deinem Beispiel der Speicherkosten von einer Nutzbaren Kapazität von 4,5kWh aus gehst, denke ich, dass es sich hier um MJ handelt?
# Solar energy thresholds to abort operations:
# If the expected solar energy (in megajoules per square meter) exceeds these values,
# operations like charging will be aborted to utilize solar energy instead.
# To find the kilowatt hour value from megajoules, divide by 3.6.
abort_solar_yield_today=10.0
abort_solar_yield_tomorrow=15.0Die voraussichtlichen Solarertragswerte kommen in der Einheit Megajoule aus der API. Deshalb ist diese Einheit hier so zu nutzen.
Welches wären hier gute Werte für meinen Speicher mit 14 kWh Nennkapazität?
Musst Du tatsächlich ausprobieren, das hängt von der Größe des Akkus und der PV-Anlage ab. Ich würde an Deiner Stelle darauf achten ab wann der Akku wieder ganz normal von der Sonne voll wird und diesen Wert dann als Abbruchswert dort eintragen. Die jeweiligen Werte werden mitgeloggt. Das Script schaltet sich dann selbst ab, genauso sieht es aus bei den Sonnenminuten.
5. Ich habe eine PV-Anlage mit 9kW welche über Wechselrichter direkt in das Hausnetz einspeisen. Mein Multiplus lädt oder entlädt den Speicher. Die Verluste die angegeben sind, kann ich also irgendwie nachvollziehen. Ich habe aber weitere 4,2 kW über einen Victron Laderegler direkt an die Batterie angeschlossen. Der Laderegler ist auch mit dem Raspberry verbunden und wird entsprechend gesteuert. DC seitige Überschüsse werden dann über den Multiplus eingespeist. Was mache ich aber nun mit den Verlusten? theoretisch müsste dieser Anteil des in die Batterie eingespeisten Stroms mit anderen Verlusten gerechnet werden. Angenommen diese Verluste würden nur 12% betragen, kann ich dann einen Mittelwert aus beiden nehmen und diesen als Verluste ansetzen? z.B. (9kW x 23% + 4,2kW x 12%) / 13,2kW = 19,5%
Die Verluste hat jemand mal über das ganze Jahr gemessen, ich halte den Wert für realistisch. Du solltest ihn ggf. nur reduzieren, falls Du die Abwärme thermisch nutzt, also ein Kellerraum damit z.B. warm wird. Bei mir ist der Multiplus in der Garage, also habe ich nichts davon. Hier die damalige Quelle: https://meintechblog.de/2022/02/08/operation-hausspeicher-wirkungsgrad-meines-ac-seitig-eingebundenen-ess/#comment-14101
Gruß Matthias
Moin Christian,
irgendwie läuft es bei mir noch nicht automatisch. Mein letzter Eintrag in der log datei war um 18:56. Das war, als es fehlerfrei gestartet war.
Hab dann vorhin neu gestartet um zu sehen, ob automatisch
ein neuer Eintrag in der Log Datei erzeugt wird: -->Leider kein Eintrag. Die Datei ist leer.
Auch nach mehreren Minuten wurde kein Eintrag erzeugt.
Dann habe ich crontab -e ausgeführt. Da kommt dann dieses:
root@raspberrypi4:~# crontab -e
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
- /tmp/crontab.1Lu3xD 0/0 100%
Dann habe ich die controller.sh erneut mit diesem Befehl ausgeführt:
root@raspberrypi4:~# sh /data/etc/Spotmarket-Switcher/controller.sh
I: Bash Version: GNU bash, version 5.0.18(1)-release (arm-ve-linux-gnueabi)
I: Spotmarket-Switcher - Version 2.4.9
[\] Loading...Config validation passed.
I: Fetching today-data data from aWATTar.
I: Please be patient. First we wait 30 seconds in case the system clock is not s yncronized and not to overload the API.
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2884 100 2884 0 0 10602 0 --:--:-- --:--:-- --:--:-- 10642
I: aWATTar tomorrow-data does not exist, fetching data.
I: Please be patient. First we wait 30 seconds in case the system clock is not syncronized and not to overload the API.
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2884 100 2884 0 0 42411 0 --:--:-- --:--:-- --:--:-- 42411
I: File '/tmp/awattar_tomorrow_prices.yaml' has no tomorrow data, we have to try it again until the new prices are online.
Data available for 24 hours.
I: Please be patient. A delay of 7 seconds will help avoid overloading the Solarweather-API.
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 136 100 136 0 0 217 0 --:--:-- --:--:-- --:--:-- 217
I: Please verify correct system time and timezone:
Sun Jan 7 10:47:38 CET 2024
I: Current price is 8.71500 Cent/kWh energy price.
I: The average price will be 8.63267 Cent/kWh energy price.
I: Highest price will be 10.48500 Cent/kWh energy price.
I: Sorted prices: 1:7.18600 2:7.20800 3:7.34600 4:7.49000 5:7.67600 6:7.76900 7:7.98200 8:8.17900 9:8.38600 10:8.40800 11:8.43400 12:8.48100
13:8.48600 14:8.71500 15:8.80100 16:8.86600 17:8.91400 18:9.11700 19:9.33100 20:9.34200 21:10.05000 22:10.17700 23:10.35500 24:10.48500
I: Charge at prices: 1 2 3
I: Dynamic ESS discharge (depending SOC) at prices: 24
I: Switchable sockets at prices: 1 2 3
I: Sunrise today will be 08:38 and sunset will be 16:28. Suntime will be 470 minutes.
I: Solarenergy today will be 3.6 megajoule per sqaremeter with 69.4 percent clouds.
I: Solarenergy tomorrow will be 3.4 megajoule per squaremeter with 70.5 percent clouds.
I: At 3.6 megajoule there will be a dynamic SOC charge-target of No target SoC found. % calculated. The rest is reserved for solar.
ERROR:dbus.connection:Unable to set arguments ('No', 'target', 'SoC', 'found.') according to signature 'v': <class 'TypeError'>: Fewer items found in D-Bus signature than in Python arguments
Traceback (most recent call last):
File "/usr/bin/dbus", line 374, in <module>
ret = obj.object.get_dbus_method(method.name, iface.name)(*args)
File "/usr/lib/python3.8/site-packages/dbus/proxies.py", line 141, in __call__
return self._connection.call_blocking(self._named_service,
File "/usr/lib/python3.8/site-packages/dbus/connection.py", line 657, in call_blocking
message.append(signature=signature, *args)
TypeError: Fewer items found in D-Bus signature than in Python arguments
Aktuell liegt ja wieder ein 24h Wert vor. Hier erscheint ein neuer Fehler, den es gestern beim 48h Wert nicht gegeben hat.
Ein erneutes ausführen von crontab -e ergibt nach einer Menge dieser Zeichen: ~
- /tmp/crontab.TImd8D 0/0 100%
Vielleicht hast du ja nochmal Zeit dir das anzuschauen. Es eilt wie gesagt nicht, aber ich würde mich freuen, wenn es auch bei mir laufen würde.
Gruß
Matthias
@matzedonien2 Das Problem ist das kein Ladeziel errechnet werden kann (No target SoC found).
Ich prüfe gerade was das Problem ist und melde mich gleich dazu.
Hattest Du nach der Installation den Raspberry neu gestartet? Die Crontab wird nur beim Neustart angelegt.
Ansonsten kannst Du das auch gemäß Anleitung manuell anlegen.
Sample Crontab: Use the following crontab entry to execute the control script every hour: Open your terminal and enter crontab -e
, then insert the following line: 0 * * * * /path/to/controller.sh
Ob ich direkt nach der Installation neu gestartet hatte weiß ich nicht. Aber ich habe insgesamt danach mehrmals neu gestartet und die von dir genannte Zeile ist ja aktuell auch nicht da.
Ich versuche die mal dort einzutragen.
Hab es hinbekommen soweit.
@matzedonien2 Du hast einen Fehler entdeckt.
Wenn das Wetterergebnis der API außerhalb der Matrix lag, wurde kein gültiger Wert zurückgegeben.
Update gibts hier: https://github.com/christian1980nrw/Spotmarket-Switcher/blob/main/scripts/controller.sh
Danke fürs Testen.
Gruß!
Christian
Du hast einen Fehler entdeckt.
Ich bin mir nicht sicher ob mich das freuen soll 🙂
Wenn das Wetterergebnis der API außerhalb der Matrix lag, wurde kein gültiger Wert zurückgegeben.
Update gibts hier: https://github.com/christian1980nrw/Spotmarket-Switcher/blob/main/scripts/controller.sh
Ich installiere das Update und schaue dann mal.
Danke fürs Testen.
Ne, danke für deine Hilfe zu gefühlt jeder Uhrzeit und jedem Tag!
Gruß!
Christian
Hallo Christian,
der start lief nun fehlerfrei durch. Es sind aber diesmal auch wieder 48h Werte vorhanden.
In der Crontab steht nun dies:
root@raspberrypi4:~# crontab -e
0 * * * * /data/etc/Spotmarket-Switcher/controller.sh
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
~
- /tmp/crontab.02mITz 1/1 100%
Aber nun ein neues Problem....
Wenn ich neu boote, dann ist im tmp Ordner die spotmarket-switcher.log verschwunden.
Selbst wenn ich manuell eine leere datei erstelle, dann ist erstmal eine da. Wenn ich dann reboote ist sie weg... Offenbar löscht das Programm diese wie gewünscht, erstellt aber keine neue?
Achso: auch ein manuelles ausführen der controller.sh erzeugt keine neue log datei.
Gruß
Matthias
@matzedonien2 Es gab in Version 2.4 größere Änderungen hin zu dynamischen Funktionen, aber mittlerweile sollten die meisten Probleme behoben sein.
Trag die controller.sh erstmal manuell in die crontab ein, das prüfe ich noch warum das nicht mehr automatisch passiert.
Gruß!
Christian