[Script] Tibber / aWATTar usw. : Victron, Sonnenbatterie, Shelly Plug S & AVM-Fritz-DECT200-210 Spotmarket-Switcher

@matzedonien2 ...ich installiere heute Abend mal die v3.13 bei mir und teste es nochmal.
Du kannst mir aber schonmal sagen ob dieser Befehl nun Deinen SOC als Ganzzahl ausgibt oder nicht:

(dbus-send --system --print-reply --dest=com.victronenergy.system /Dc/Battery/Soc com.victronenergy.BusItem.GetValue | grep variant | awk '{print int($3)}')

@christian1980

Ja es wird eine Ganzzahl ausgegeben.

root@raspberrypi4:~# (dbus-send --system --print-reply --dest=com.victronenergy.system /Dc/Battery/Soc com.victronenergy.BusItem.GetValue | grep variant | awk '{print int($3)}')
15

...seltsam, dann müsste das Problem eigentlich behoben sein. Bist Du Dir sicher das das Programm nun Version 2.4.8 anzeigt wenn Du es laufen lässt?

@christian1980

Jup,

dies zeigt er an, wenn ich das starte:

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.8
[/] Loading...Config validation passed.

Habe auch gerade gesehen, dass er (nachdem ich die Wetter Api engefügt habe) nun noch folgendes am Ende anzeigt:

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
I: Sunrise today will be 08:39 and sunset will be 16:25. Suntime will be 466 min utes.
I: Solarenergy today will be 0.4 megajoule per sqaremeter with 99.3 percent clou ds.
I: Solarenergy tomorrow will be 0.3 megajoule per squaremeter with 99.4 percent clouds.
I: At 0.4 megajoule there will be a dynamic SOC charge-target of 90 % calculated . The rest is reserved for solar.
/data/etc/Spotmarket-Switcher/controller.sh: line 1286: 90: command not found
root@raspberrypi4:~#

Vielleicht kannst du dir die neue Version mal anschauen. Oder mir sagem mit welcher es läuft. Ich kann ja auch eine alte version aufspielen.

Es eilt aber nicht!!

Ich muss gleich auf ne private Veranstaltung, daher könnte ich es heute auch nicht mehr testen, falls du noch etwas findest.

Gruß

Matthais

...die Varible wird nun fälschlicherweise als Befehl interpretiert. Ich melde mich im Laufe des Abends, es wird an Deiner neueren Venus OS Version liegen, ist aber keine große Sache das zu beheben. Ich will sowieso auf ein neues Venus OS umsteigen, also alles gut.
Gruß!
Christian

@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

@christian1980

Das ist ja höchst interessant. Ich teste nun deine neueste Version des Codes und melde mich dann gleich.

@christian1980

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
  1. 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.

  2. 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.

  1. 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?

  1. 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

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

@christian1980

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: Spotmarket-Switcher/scripts/controller.sh at main · christian1980nrw/Spotmarket-Switcher · GitHub
Danke fürs Testen.
Gruß!
Christian

@christian1980

Du hast einen Fehler entdeckt.

Ich bin mir nicht sicher ob mich das freuen soll :slight_smile:

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

@christian1980

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