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!

Benachrichtigungen
Alles löschen

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

95 Beiträge
8 Benutzer
14 Reactions
4,059 Ansichten
(@christian1980)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 55
Themenstarter  

@zx6r
Hi, ich habe Dir die Anleitung gerade etwas vereinfacht und auch eine Möglichkeit hinzugefügt, das unter Windows zu testen.
siehe README.de.md .
Im Prinzip musst Du die Schritte dort nur befolgen und dann die controller.sh mit vi anpassen, also Fritzbox und günstigsten Preis aktivieren,
Zugangdaten der Fritzbox und die Steckdosen-ID eintragen.
Wenn Du eine andere API als Awattar nutzen willst (z.B. die integrierte Tibber-API) stehen die weiteren Anweisungen in der controller.sh etwa ab Zeile 100.

Viel Erfolg.

 

Gruß! Christian


   
zx6r reacted
AntwortZitat
 zx6r
(@zx6r)
Autarkiekönig
Beigetreten: Vor 2 Jahren
Beiträge: 498
 

@christian1980 Super 🙂 Danke schön .. Werde es die Tage mal ausprobieren

Warum einfach wenn's auch kompliziert geht


   
AntwortZitat
 zx6r
(@zx6r)
Autarkiekönig
Beigetreten: Vor 2 Jahren
Beiträge: 498
 

@christian1980 Hmm .. leider läuft etwas nicht .. wollte das Skript manuell ausführen .. dann kommt folgende Meldung > Zeile 344: /data/etc/Spotmarket-Switcher/spotmarket-switcher.log: Datei oder Verzeichnis nicht gefunden<

 

pi@emonpisich:/tmp/foo/data/etc/Spotmarket-Switcher $ bash /tmp/foo/data/etc/Spotmarket-Switcher/controller.sh
/tmp/foo/data/etc/Spotmarket-Switcher/controller.sh: Zeile 344: /data/etc/Spotmarket-Switcher/spotmarket-switcher.log: Datei oder Verzeichnis nicht gefunden

Warum einfach wenn's auch kompliziert geht


   
AntwortZitat
(@christian1980)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 55
Themenstarter  

@zx6r Das ist passiert weil Du nicht in das Standardverzeichnis / installiert hast. Da passt dann der Verweis auf das Logfile nicht.
Es ist aber schnell korrigiert, stelle bitte in Zeile 311 die Variable auf /tmp/spotmarket-switcher.log um, dann wird dorthin geloggt.
Danke für den Hinweis, vielleicht stelle ich im nächsten Release standardmäßig auf diesen Pfad um.

Das Installerscript ist normaerweise für Victron Venus OS gedacht, damit der Spotmarket-Switcher nach einem Firmwareupdate weiterläuft.
Für sonstige Betriebssysteme mit ggf. anderen Pfaden sind die Schritte in der Beschreibung zu erledigen.


   
zx6r reacted
AntwortZitat
 zx6r
(@zx6r)
Autarkiekönig
Beigetreten: Vor 2 Jahren
Beiträge: 498
 

Hab Zeile 311 > LOG_FILE="/data/etc/Spotmarket-Switcher/spotmarket-switcher.log"< an meinen Pfad angepasst .. nun passiert zumindest irgend etwas 🙂

 

Warum einfach wenn's auch kompliziert geht


   
AntwortZitat
 zx6r
(@zx6r)
Autarkiekönig
Beigetreten: Vor 2 Jahren
Beiträge: 498
 

@christian1980 Eine Frage hab ich noch ... Er schaltet mir die Steckdose wunderbar Preisabhängig an --- aber leider nicht wieder aus wenn ich einen höheren Preis eingebe...  Evtl.macht er das nach 60 min. .. aber sollte in der Zeit der Rechner z.b. neu gestartet werden .. oder das skript stoppen .. dann bleibt die Steckdose eingeschaltet ...

Kann ich das evtl. einstellen das er auch ausschaltet ?

Warum einfach wenn's auch kompliziert geht


   
AntwortZitat
(@christian1980)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 55
Themenstarter  

@zx6r

Aktuell ist vorgesehen, dass die gesamte günstigste Stunde eingeschaltet bleibt. Eventuell mache ich das in zukünftigen Versionen konfigurierbar.

Du kannst aber in Zeile 962 die Wartezeit bis abgeschaltet wird von 3560 Sekunden heruntersetzen wenn du nur eine Steckdose hast.
Allerdings muss Dein Raspberry natürlich immer an sein, das stimmt.
Wenn Du irgendwann fertig getestet hast wird das ja sowieso durch die Contab stündlich automatisch gestartet.


   
zx6r reacted
AntwortZitat
 zx6r
(@zx6r)
Autarkiekönig
Beigetreten: Vor 2 Jahren
Beiträge: 498
 

@christian1980 OKi 🙂 Nochmals vielen Dank für die Hilfe ..

Warum einfach wenn's auch kompliziert geht


   
AntwortZitat
 zx6r
(@zx6r)
Autarkiekönig
Beigetreten: Vor 2 Jahren
Beiträge: 498
 

@christian1980

Nur mal zur Info .. Ich sehe in deinem Programm enormes Potenzial!!

 (wenn es ausgereift ist Wink insofern das Dummis wie ich Scared es Problemlos verstehen, Installieren und benutzen können)

Nicht nur das man damit Akkus Laden kann zu bei Preiswerten Strompreisen .. und damit dann die teuren Phasen mit relativ geringer Akku Leistung überbrücken könnte.

Zusätzlich kann man auch noch auf einfache Art Stromintensive Geräte z.b. eine Spülmaschine zu den Preiswerten Phasen einschalten oder Mähroboter etc. .. im Prinzip alles was nicht Zeitgebunden ist.

Ich finde die Idee TOP und bleibe dran … im Moment scheint es für mich zu funktionieren .. bevor es aber in den echtlauf geht brauch ich noch ein wenig Zeit

Nochmals vielen Dank für deine Arbeit Love Kiss und bleib dran das könnte richtig gut werden Pray  

Warum einfach wenn's auch kompliziert geht


   
AntwortZitat
(@kauzzusammen)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 25
 

Hi, 

kann ich das auch mit einem Deye WR nutzen? Mein Deye ist bereits ein Hybrid WR, daher brauche ich kein Victron-Gerät. 

Dafür muss ich auch zu Tibber wechseln oder? 

Wird der jetztige Stromanbieter von Tibber automatisch gekündigt?


   
AntwortZitat
(@christian1980)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 55
Themenstarter  

Hi, ich kann Dir nicht sagen ob Deye über die Shell mit Befehlen zum Laden oder Entladen gebracht werden kann.

Falls es möglich ist, kann man das Script ganz einfach dafür anpassen.
In der aktuellen Version findest du die entsprechende Stelle ab Zeile 321 in der controller.sh.

  charger_command_turnon="dbus -y com.victronenergy.settings /Settings/CGwacs/BatteryLife/Schedule/Charge/0/Day SetValue -- 7"
  charger_command_turnoff="dbus -y com.victronenergy.settings /Settings/CGwacs/BatteryLife/Schedule/Charge/0/Day SetValue -- -7"
  SOC_percent=$(dbus-send --system --print-reply --dest=com.victronenergy.system /Dc/Battery/Soc com.victronenergy.BusItem.GetValue | grep variant | awk '{print $3}') # This will get the battery state of charge (SOC) from a Victron Energy system

Testen kannst Du das Script auch erstmal ohne Tibber. Wenn Du Dir sicher bist das es funktioniert, kannst Du dann über die App den Wechsel auslösen.

Tibber kündigt dann bei Deinem bisherigem Anbieter.

Gruß! Christian


   
AntwortZitat
(@matzedonien2)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 34
 

Hallo zusammen,

 

ich habe heute die neueste Version auf meine Raspberry PI installiert um das einfach zu testen. Aktuell bin ich noch kein Tibber Kunde.

 

Vielleicht bin ich als normaler User zu doof, aber ich habe einige Probleme:

1. Führe ich die controller.sh datei aus, so bekomme ich folgende Meldungen.

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.7
[-] Loading...Config validation passed.
I: aWATTar today-data is up to date.
I: aWATTar tomorrow-data is up to date.
Data available for 48 hours.
I: Please verify correct system time and timezone:
Thu Jan 4 20:31:13 CET 2024
I: Current price is 10.35900 Cent/kWh energy price.
I: The average price will be 8.83902 Cent/kWh energy price.
I: Highest price will be 14.46500 Cent/kWh energy price.
I: Sorted prices: 1:2.54800 2:3.50000 3:4.00000 4:5.04600 5:5.73000 6:5.77300 7:7.26500 8:7.32100 9:7.40500 10:7.60300 11:7.70100 12:8.05100
13:8.10000 14:8.50200 15:8.59600 16:8.60800 17:8.63000 18:8.68000 19:8.70000 20:8.88300 21:8.95700 22:9.00300 23:9.14700 24:9.15400
25:9.16100 26:9.21100 27:9.22400 28:9.41900 29:9.42000 30:9.48600 31:9.49200 32:9.49300 33:9.62800 34:9.64100 35:9.82200 36:9.86200
37:10.00100 38:10.00500 39:10.00900 40:10.29700 41:10.35900 42:10.39600 43:10.57300 44:10.73800 45:10.84500 46:12.50000 47:13.32300 48:14.46500

/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1224: [: -ge: unary operator expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : integer expression expected
/data/etc/Spotmarket-Switcher/controller.sh: line 1259: [: : 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

Die nächsten Probleme sind Verständnisprobleme.

2. Wenn ich es richtig verstehe, dann gebe ich die meine Preisgrenzen unter: "Start/Stop Logic Settings" ein. Muss ich dort "use_start_stopp" auf 1 stellen? Theoretisch sollte das so sein. Wann schaltet der die Ladung des Speichers dann wieder aus? Wenn nach einer Stunde der Einschaltwert wieder überschritten wird? Oder muss der Ausschaltwert überschritten werden? Dann müsste ich die ja (fast) identisch einstellen, wenn das die Grenze sein soll.

Aktuell kann ich dort einstellen was ich will und er fängt aber auch bei geringeren Strompreisen als in der Schwelle eingestellt nicht an zu laden. Ein einziges Mal hat er das getan, aber ich weiß nicht warum. Ich meine, dass ich im "Venus OS Solar Charger Setup" einschalten musste. Aber dann kam das Problem aus Punkt 3

3. Was stelle ich unter "Venus OS Solar Charger Setup ein"? Wenn ich diesen aktiviere, dann schaltet der mein ESS ab und der Speicher entlädt nicht mehr um meinen Hausanschlusspunkt auf 0 zu regeln? Im Venus OS ist die Wechselrichterleistung dann auf 0W begrenzt.

4. Was genau ist unter dem Punkt "Config Matrices for Charging/Discharging/Switching" einzustellen? Der SOC-Wert gibt hier an, wie weit der Speicher entladen wird, wenn er sich im ESS Modus befindet? Hier verweise ich aber auf Punkt 3. Der Wechselrichter wird immer begrenzt und entlädt nicht.

 

Die weiteren Punkte habe ich im wesentlichen Verstanden. Ich weiß aber nicht, ob es bei an den Fehlermeldungen liegt oder ob ich die Bedienung noch nicht ausreichend verstanden habe.

 

Gruß

Matthias

 

 


   
AntwortZitat
(@christian1980)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 55
Themenstarter  

Hi, damit ich die Fehlermeldungen prüfen kann, magst Du mir bitte Deine Venus OS Version verraten und Deine config.txt ohne API-Keys posten?
Auf den ersten Blick sieht es so aus als ob das Script Deinen SOC nicht auslesen kann.
Gib mal auf der Shell mal ein:

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

 

Gibt er damit den SOC als Ganzzahl bei Dir aus?

Falls nicht gib mir bitte mal die Ausgabe von und ich schaue was ich für Dich tun kann.

dbus-send --system --print-reply --dest=com.victronenergy.system /Dc/Battery/Soc com.victronenergy.BusItem.GetValue

start_stopp brauchst Du nicht verwenden, die Verwendung der 24 und 48 Preisstunden Matrix reicht aus und füht zu besseren Ergbnissen.

Wenn ich diesen aktiviere, dann schaltet der mein ESS ab...
Das ist ein Feature, denn es wird auf höhere Preise gewartet bis entladen wird (je nach Akkufüllstand, Konfiguration in mitterer Spalte der 24 und 48 Matrix).

Gruß!
Christian


   
AntwortZitat
(@matzedonien2)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 34
 

@christian1980 Hi, danke für die schnelle Antwort.

Also meine Version ist die v3.13

Dies bekomme ich als Antwort auf den Befehl:

root@raspberrypi4:~# dbus-send --system --print-reply --dest=com.victronenergy.s ystem /Dc/Battery/Soc com.victronenergy.BusItem.GetValue
method return time=1704400183.048412 sender=:1.19 -> destination=:1.143 serial=3 056 reply_serial=2
variant double 64.52

Den Inhalt der config.txt poste ich sofort


   
AntwortZitat
(@matzedonien2)
Vorsichtiger Stromfühler
Beigetreten: Vor 2 Jahren
Beiträge: 34
 

@christian1980 Oh man, wie schicke ich das am besten? Da kommt eine Fehlermeldung des Forums. "Malcare Firewall" irgendwas


   
AntwortZitat
Seite 2 / 7
Teilen: