NEWS
Geräte zu Stundenpreisen (EPEX) oder PV-Überschuss betreiben
-
Hallo zusammen,
habe mir inzwischen eine Lösung ausgedacht und bin fast fertig.
Frage: wie kann ich im Script nur den ersten Wert des ersten Elements ausgeben? Hier im Beispiel die Stunde 4.Mein Script:
Danke schon mal.
-
@einstein-0
Moin,
irgendwie verstehe ich gerade Dein Ansatz nicht. Vielleicht liegt es auch daran, dass es früh am Morgen ist.
Der Adapter Tibberlink, sortiert den Preis Total in Stunden (allerdings Ordnern) für today und tommorow.
Und Du schreibst es jetzt untereinander in einer Liste und sortierst den Preisen nach, sehe ich das richtig?
Damit hast Du doch auch nicht gerade mehrere Stunden hintereinander mit den günstigsten Preisen, sondern nur den günstigstens Preis.Ich bin auch am überlegen, ob ich sowas mache, allerdings halte ich die verschiedenen Faktoren die eine Rolle spielen, für nicht gerade wenig und von daher könnte man es auch fast manuell einstellen.
Denn wenn ich zB den günstigsten Strompreis zum laden des Akkus nehme, wann darf er denn entladen werden?
Beispiel, der günstigste Preis wäre wie bei Dir 25,31 Cent.
Dann macht es wenig Sinn, den bei einem Strompreis von 26 Cent wieder zu entladen.
Du musst immer berücksichtigen, dass Du beim laden und entladen Verluste hast, manche schreiben von 20-25% sogar, dies hätte zur Folge, dass ein mit 25,31 Cent geladener Akku, sich erst lohnt, wenn er bei Größer 31,63 Cent entladen wird.Wenn man dies berücksichtigen will, muss man eben nicht nur den günstigsten Zeitraum zum laden suchen, sondern auch den teuersten zum entladen und dazwischen sollte er nix tun.
Dies hätte aber zur Folge, dass man ebenso den Zeitraum der teuersten Zeit betrachten müsste, wieviel wird da in der Regel entnommen, weil was nützt mir dass, wenn ich meinen Akku schaffe voll zu laden im günstigsten Zeitraum und ich brauche davon nur ein Drittel.
Dann ärgert man sich, wenn am übernächsten Tag der Strompreis noch günstiger wird, aber man de nAkku noch zu 2/3 voll hatWie Du merkst, wenn man sich ernsthaft Gedanken macht, was möchte ich wann und wie am effektivsten, dann könnte man es bis auf die Spitze treiben.
Deswegen bin ich da für mich noch nicht so ganz auf einen Nenner gekommen, was sinnvoll ist.Ich denke ein Ansatz wäre, sich sein Tagesprofil anzuschauen, wann verbrauche ich wieviel.
Die günstigsten Strompreise entstehen in der Regel nachts, da wird auch im Hause am wenigsten verbraucht.
Dann zu schauen, wie hoch ist die Differenz zwischen günstigsten und teuersten Tarif.
Dieser sollte schon mindestens mehr als 25% sein, damit sich der Aufwand lohnt und man etwas gewinnt.
Dann natürlich auch, wann ist der teuerste Preis, wird da überhaupt großartig was verbraucht ...
Und wie oben schon beschrieben, theoretisch müsste ich den Akku blocken, dass er nicht vorzeitig schon abgibt und ich durch meine Verluste ein Minusgeschäft mache.Dies sind nur ein paar Überlegungen von mir, mein Nachteil ist, ich arbeite beruflich in einer Mess- und Regelabteilung, da ist es quasi mein tägliches Brot, "perfekt" zu regeln und zu optimieren, manchmal wäre es besser, man würde nicht soviel nachdenken *lach.
-
@tugsi danke für deinen ausführlichen Beitrag. Was ich möchte ist eigentlich ganz einfach. Es sollen die 4 günstigsten Stunden zwischen 22 und 6 Uhr ermittelt werden in denen ich meinen Akku laden kann.
Dazu habe ich die Werte aus TibberLink ausgelesen und sortiert. Funktioniert auch soweit.
Jetzt muss ich die besagten 4 Stunden verteilt auf die Objekte schreiben. Also beste Stunde 1 bis 4.
Danach kann ich die 4 Werte in mein Ladescript einbinden.
4h deswegen, da ich mit 4kw laden möchte und meine Akku 16kwh hat.
Hast du eine Idee wie ich nur den Stundenwert in das Objekte schreiben kann?
Gruß Einstein -
@einstein-0 sagte in Geräte zu Stundenpreisen (EPEX) oder PV-Überschuss betreiben:
Hast du eine Idee wie ich nur den Stundenwert in das Objekte schreiben kann?
Ich bin leider nicht ganz so fit im Scripting.
Es gibt im JavaScript aber der Befehl.charAt(1)
Damit nimmt er den zweiten "Wert" in Deiner Zeichenfolge (Zeichenfolge fängt immer mit 0 an, also 0,1,2,3,4...
Du hast ja´4´,0.2531
da stehen somit wäre das erste Hochzeichen charAt(0), Dein Stundenwert eben charAt(1) usw.
Vor dem Punkt steht Dein Objekt.
Also irgendwas mit´GünstigsteStunde1´.charAt(1)
Damit hast dann nur den Stundenwert (Ich weiß jetzt nur nicht, ob der Datenpunkt richtig angegeben wurde).
Irgendwie so, schon mal in die Richtung geschubst.
-
@tugsi
@Einstein-0
Hallo zusammen und sorry, dass ich mich zwischenzeitlich nicht habe melden können. Vielleicht kann meine Info Euch ja dennoch unterstützen...Dem gesamten Ansatz möchte ich voranstellen, dass das Laden einer PV-Batterie mit Netzstrom NICHT ZULÄSSIG IST, wenn die Batterie Teil einer PV-Anlage mit EEG-Förderung ist.
... nur zur Sicherheit... Ich gehe davon aus, dass dies in diesem Fall nicht zutrifft.Die Gedanke und Ansätze von @tugsi teile ich. An der Stelle breche ich mir auch gerade die Finger - aua . Mal schauen was uns dazu noch einfällt. Im Moment ist dieser Teil zurückgestellt.
Für das Laden meines BEVs hatte ich die Notwendigkeit die günstigen Stunden über einen Zeitraum von bis zu 48h aus den Tibberdaten zu ermitteln. Da ich nicht mit den Werten in den einzelnen Datenpunktordnern arbeite, habe ich dies über eine Liste realisiert. Alle Werte (Preis, Stunde, Reihenfolge) werden in eine Liste geschrieben. Diese Liste wird dann sortiert, umgestellt, gekürzt bis es passt.
2023-12-07_EPEX_TIBBER_günstige Stunden zum Laden.json
Sofern es Euch hilft und Ihr die Zeit investieren möchtet... Die relevanten Abschnitte finden sich in "FKT_4_..." und "FKT_5_...". Leider schaffe ich es nicht, das Skript umfangreicher zu erläutern... Vielleicht findet sich für Euch aber noch ein Ansatz.
In einem anderen Thread beschrieb ich mal den Vorgänger des eingefügten Scripts.
https://forum.iobroker.net/topic/68266/bev-mit-epex-börsen-strom-laden?_=1701958474745
Die Beschreibung passt also nicht mehr komplett, aber die Ausführungen zu den beiden Funktionen passen noch.Beste Grüße, Thomas
-
@thomkast sagte in Geräte zu Stundenpreisen (EPEX) oder PV-Überschuss betreiben:
Dem gesamten Ansatz möchte ich voranstellen, dass das Laden einer PV-Batterie mit Netzstrom NICHT ZULÄSSIG IST, wenn die Batterie Teil einer PV-Anlage mit EEG-Förderung ist.
Der Passus ist mir bekannt und im Grunde gibt es dazu ausreichend kontroverse Diskussionen und Argumente im Netz
Es gibt sogar Aussagen die sagen, es wäre doch durchaus möglich.
Was allerdings zwingend nicht erlaubt ist, dass einspeisen ins Netz durch die Batterie.Ich möchte das hier jetzt auch nicht aufdröseln, soll jeder selber sich ein Bild im Netz machen.
Ich lade mein gefördertes Elektroauto mit Netzstrom, dies ist erlaubt.
Mein um einiges kleinerer Speicher, für Eigenbedarf (ich rede nicht von Zurückspeisen ins Netz), darf ich nicht benutzen, weil ich eine 20 Jahresförderung für eingespeisten Strom bekomme ...
Und dies obwohl ich zweckdienlich einen Überstrom im deutschen Netz nutze und somit für Netzstabilität sorge ...
Ich sage nur, finde den Fehler.Aber korrekt wäre es anders . Gut, dass Du nochmal darauf hingewiesen hast (das meine ich ehrlich und nicht ironisch!).
Das Laden meines Autos mache ich semiautomatisch, ich habe eine selbstgebaute openWB, noch mit der 1.9er Software. Die holt sich von Tibber die Daten und zeigt mir den Strompreis an.
Da kann ich dann einstellen, bei welchem Strompreis ich laden möchte, wenn der unterschritten wird.
Ja, dies passiert händisch, weil es ja auch davon abhängt, wie brauche ich das Auto und wie ist der Preis.Beispiel, ich weiß, morgen fahre ich mindestens 150km, brauche also dementsprechende Ladung, dann gibt es für mich folgende Szenarien:
- Akku ist ausreichend voll, Strompreis mir persönlich zu hoch = nix tun
- Akku ausreichend voll, Strompreis aber günstig = lade in der Zeit den Akku nach
- Akku zu leer, Strompreis hoch = günstigste Zeit wählen und nur das "Minimum" nachladen plus Reserve
- Akku zu leer, Strompreis günstig = wie Punkt 2
Dein Script schaue ich mir mal in Ruhe an, wenn ich mehr Muse habe, wie gesagt, ich bin mir da unsicher, ob ich das automatisieren sollte.
Gruß Thomas
-
@thomkast sagte in Geräte zu Stundenpreisen (EPEX) oder PV-Überschuss betreiben:
Sofern es Euch hilft und Ihr die Zeit investieren möchtet... Die relevanten Abschnitte finden sich in "FKT_4_..." und "FKT_5_...". Leider schaffe ich es nicht, das Skript umfangreicher zu erläutern... Vielleicht findet sich für Euch aber noch ein Ansatz.
Habe doch mal kurz Dein Script importiert (wobei Du hier im Thread nur Fkt1 hast, daher aus Deinem Urpsrungsthread genommen)
Dort ist ja schon sowas, was @Einstein-0 sucht:
Aus Deiner Liste nimmst Du doch die entsprechende Stelle dann raus.
Hast Du mal kurzen Ausschnitt aus der Liste, dann kann @Einstein-0 den Aufbau genau sehen.
Ich denke das hilft ihm weiter. -
@tugsi
Das sieht am aktuellen Beispiel dann so aus: -
Ist es möglich deine tolle Arbeit auch für den österreichischen Anbieter SmartEnergy zu nutzen ?
Hier ist der Link zu deren API: https://www.smartenergy.at/api-schnittstellen
Lässt sich das mit deinen Scripten machen und falls ja was müsste ich da genau tun ?
Beste Grüße
-
@qlink der Börsenstrompreis, sollte überall gleich sein.... das was der Anbieter noch aufschlägt sollte ja auch immer "gleich" sein....
Somit íst das hier immer zu gebrauchen...
edit
ah mist... es muss ja einTiber token benutzt werden... dann ist das natürlich nicht mal eben für was anderes zu benutzen.....Bringt dich der Awattar-Adapter nicht auch zum Ziel?
-
Leider nein, nur einfach austauschen der API URL im awattar Adapter funktioniert nicht.
Hab dazu auch schon einen Github Request aufgemacht, aber bei dem awattar Adapter hat sich lt. Github scheinbar seit 3 Jahren nichts mehr getan, daher hab ich da auch eher wenig Hoffnung auf Lösung meiner Anfrage. -
@qlink Moin aus dem verregneten Norddeutschland nach Österreich und alles Gute im neuen Jahr .
Ich schaue mir die API mal an und melde mich dann. Wenn es nicht zu umfangreich wird, helfe ich gerne. -
-
@qlink Hi, wenn Du mal schauen möchtest...
Dieses Blockly-Script holt die Daten von APIS ab (1.Teil) und mit dem 2.Teil hast Du Zugriff auf die Stundenpreise.
- Teil speichert die Daten im Datenpunkt unter 0_userdata.0.APIS_AT.Preise_heute
APIS beschreibt ja, dass die Daten um 1700 für den Folgetag "mit enthalten" sind. Wie das dann aussieht müssen wir noch schauen.
Lässt Du das Blockly-Script vor 1700 laufen, erhälst Du schon mal die Daten des aktuellen Tages.Den 1.Teil würde ich nur 1mal aufrufen und dann mit dem Datenpunkt (2. Teil) arbeiten, damit die API-Quelle nicht unnötig belastet wird.
... vielleicht beschreibst Du mal, was Du genau machen möchtest...
... warum APIS die Preise 1/4stündlich anbietet erschließt sich mir nicht. Wie ist denn die Preisgestaltung des Anbieters? -
@thomkast Hi,
Habe dein erstelltes Skript (SmartEnergy) mal importiert- vielen Dank dafür. Skript funktioniert nach dem Anlegen des DP. Ich würde gerne meinen Warmwasserspeicher mit dem günstigsten Stundenpreis aufheizen. Zur Zeit geht das zwar mit meinem Skript aber dieses vergleicht nicht die kommenden Preise sonder) startet die WP beim unterschreiten der eingestellten Grenze. Hast du eine Idee wie ich das lösen könnte?
-
Vielen Dank für deinen Support !
Ich habe unter Objekte einen DP "0_userdata.0.APIS_AT.Preise_heute" vom Typ "json" erstellt und danach dein Script gestartet.
Daraufhin erhalte ich folgenden Inhalt in dem DP:
- {"tariff":"EPEXSPOTAT","unit":"ct/kWh","interval":15,"data":[{"date":"2024-01-04T00:00:00+01:00","value":6.876},{"date":"2024-01-04T00:15:00+01:00","value":6.876},{"date":"2024-01-04T00:30:00+01:00","value":6.876},{"date":"2024-01-04T00:45:00+01:00","value":6.876},{"date":"2024-01-04T01:00:00+01:00","value":6.055},{"date":"2024-01-04T01:15:00+01:00","value":6.055},{"date":"2024-01-04T01:30:00+01:00","value":6.055},{"date":"2024-01-04T01:45:00+01:00","value":6.055},{"date":"2024-01-04T02:00:00+01:00","value":4.800},{"date":"2024-01-04T02:15:00+01:00","value":4.800},{"date":"2024-01-04T02:30:00+01:00","value":4.800},{"date":"2024-01-04T02:45:00+01:00","value":4.800},{"date":"2024-01-04T03:00:00+01:00","value":3.058},{"date":"2024-01-04T03:15:00+01:00","value":3.058},{"date":"2024-01-04T03:30:00+01:00","value":3.058},{"date":"2024-01-04T03:45:00+01:00","value":3.058},{"date":"2024-01-04T04:00:00+01:00","value":4.200},{"date":"2024-01-04T04:15:00+01:00","value":4.200},{"date":"2024-01-04T04:30:00+01:00","value":4.200},{"date":"2024-01-04T04:45:00+01:00","value":4.200},{"date":"2024-01-04T05:00:00+01:00","value":6.928},{"date":"2024-01-04T05:15:00+01:00","value":6.928},{"date":"2024-01-04T05:30:00+01:00","value":6.928},{"date":"2024-01-04T05:45:00+01:00","value":6.928},{"date":"2024-01-04T06:00:00+01:00","value":8.718},{"date":"2024-01-04T06:15:00+01:00","value":8.718},{"date":"2024-01-04T06:30:00+01:00","value":8.718},{"date":"2024-01-04T06:45:00+01:00","value":8.718},{"date":"2024-01-04T07:00:00+01:00","value":10.202},{"date":"2024-01-04T07:15:00+01:00","value":10.202},{"date":"2024-01-04T07:30:00+01:00","value":10.202},{"date":"2024-01-04T07:45:00+01:00","value":10.202},{"date":"2024-01-04T08:00:00+01:00","value":10.976},{"date":"2024-01-04T08:15:00+01:00","value":10.976},{"date":"2024-01-04T08:30:00+01:00","value":10.976},{"date":"2024-01-04T08:45:00+01:00","value":10.976},{"date":"2024-01-04T09:00:00+01:00","value":11.304},{"date":"2024-01-04T09:15:00+01:00","value":11.304},{"date":"2024-01-04T09:30:00+01:00","value":11.304},{"date":"2024-01-04T09:45:00+01:00","value":11.304},{"date":"2024-01-04T10:00:00+01:00","value":10.985},{"date":"2024-01-04T10:15:00+01:00","value":10.985},{"date":"2024-01-04T10:30:00+01:00","value":10.985},{"date":"2024-01-04T10:45:00+01:00","value":10.985},{"date":"2024-01-04T11:00:00+01:00","value":10.794},{"date":"2024-01-04T11:15:00+01:00","value":10.794},{"date":"2024-01-04T11:30:00+01:00","value":10.794},{"date":"2024-01-04T11:45:00+01:00","value":10.794},{"date":"2024-01-04T12:00:00+01:00","value":10.355},{"date":"2024-01-04T12:15:00+01:00","value":10.355},{"date":"2024-01-04T12:30:00+01:00","value":10.355},{"date":"2024-01-04T12:45:00+01:00","value":10.355},{"date":"2024-01-04T13:00:00+01:00","value":10.315},{"date":"2024-01-04T13:15:00+01:00","value":10.315},{"date":"2024-01-04T13:30:00+01:00","value":10.315},{"date":"2024-01-04T13:45:00+01:00","value":10.315},{"date":"2024-01-04T14:00:00+01:00","value":11.053},{"date":"2024-01-04T14:15:00+01:00","value":11.053},{"date":"2024-01-04T14:30:00+01:00","value":11.053},{"date":"2024-01-04T14:45:00+01:00","value":11.053},{"date":"2024-01-04T15:00:00+01:00","value":11.834},{"date":"2024-01-04T15:15:00+01:00","value":11.834},{"date":"2024-01-04T15:30:00+01:00","value":11.834},{"date":"2024-01-04T15:45:00+01:00","value":11.834},{"date":"2024-01-04T16:00:00+01:00","value":12.499},{"date":"2024-01-04T16:15:00+01:00","value":12.499},{"date":"2024-01-04T16:30:00+01:00","value":12.499},{"date":"2024-01-04T16:45:00+01:00","value":12.499},{"date":"2024-01-04T17:00:00+01:00","value":12.592},{"date":"2024-01-04T17:15:00+01:00","value":12.592},{"date":"2024-01-04T17:30:00+01:00","value":12.592},{"date":"2024-01-04T17:45:00+01:00","value":12.592},{"date":"2024-01-04T18:00:00+01:00","value":12.348},{"date":"2024-01-04T18:15:00+01:00","value":12.348},{"date":"2024-01-04T18:30:00+01:00","value":12.348},{"date":"2024-01-04T18:45:00+01:00","value":12.348},{"date":"2024-01-04T19:00:00+01:00","value":12.593},{"date":"2024-01-04T19:15:00+01:00","value":12.593},{"date":"2024-01-04T19:30:00+01:00","value":12.593},{"date":"2024-01-04T19:45:00+01:00","value":12.593},{"date":"2024-01-04T20:00:00+01:00","value":12.012},{"date":"2024-01-04T20:15:00+01:00","value":12.012},{"date":"2024-01-04T20:30:00+01:00","value":12.012},{"date":"2024-01-04T20:45:00+01:00","value":12.012},{"date":"2024-01-04T21:00:00+01:00","value":11.186},{"date":"2024-01-04T21:15:00+01:00","value":11.186},{"date":"2024-01-04T21:30:00+01:00","value":11.186},{"date":"2024-01-04T21:45:00+01:00","value":11.186},{"date":"2024-01-04T22:00:00+01:00","value":10.892},{"date":"2024-01-04T22:15:00+01:00","value":10.892},{"date":"2024-01-04T22:30:00+01:00","value":10.892},{"date":"2024-01-04T22:45:00+01:00","value":10.892},{"date":"2024-01-04T23:00:00+01:00","value":10.634},{"date":"2024-01-04T23:15:00+01:00","value":10.634},{"date":"2024-01-04T23:30:00+01:00","value":10.634},{"date":"2024-01-04T23:45:00+01:00","value":10.634}]}
War das soweit korrekt ?
Wenn ja, bin ich mir jetzt nicht ganz sicher wie die nächsten Schritte ausschauen sollen ...Beste Grüße
-
@qlink Wenn Du meine Fragen beantworten und vor allem auf "... was Du genau machen möchtest..." eingehen würdest könnte ich vielleicht mitdenken...
-
@peter666666 dazu müsste ich Deinen Gedanken erst komplett verstanden haben...
Ich vermute mal:
- Du möchtest Deinen WW-Speicher zu den günstigsten Stundenpreisen aufheizen
- teils auch "überheizen", wenn "in absehbarer Zeit" keine günstige Stunde mehr ansteht
Sollte das stimmen, stellt sich die Frage, welche Wärmemenge über welche Zeit aus dem WW-Speicher entnommen werden soll. Und wie viel Energie zum Aufheizen wiederum benötigt wird.
Oder anders ausgedrückt... Wie lange es dauert bis die MIN-Temperatur (durch Wärmeentnahme) erreicht wird. Und wie lange es dauert bis die MAX-Temperatur wieder erreicht wird.
Und eine weitere Perspektive... Wie lange der Speicher auf MIN-Temperatur verbleiben darf, um auf eine günstige Stunde zu warten.
Daraus wiederum die Frage, ob bei zu langer Wartezeit - unabhängig des Stundenpreises - auf eine höhere Temperatur, aber kleiner MAX aufgeheizt werden soll.Dies sind konzeptuale Fragen, zu denen Du bitte Deine Absicht und Abhängigkeiten aufschreiben müsstest...
Ich bin gespannt
-
@thomkast Hallo Thomas,
meine WP (10 Jahre alt und hat keine Möglichkeit mit Netzwerkkabel oder ähnlichem diese zu steuern) ist zur Zeit so eingestellt das diese ab 40°C WW zu heizen beginnt auf 48°C unabhängig vom Strompreis. Im Sommer habe ich mir mit 2 Shelly1 die Möglichkeit geschaffen die Funktion "Extra Brauchwasser" anzusteuern wodurch die WP beginnt die WW Temp. auf 60°C zu erhitzen und mit dem 2 Shelly wir die Funktion wieder deaktiviert wenn genug PV Überschuss vorhanden ist was auch funktioniert.
Jetzt im Winter ist nicht viel mit PV Überschuss und möchte in einem neuen Skript die günstigsten Strompreise je Tag nutzen diese Funktion Extrabrauchwasser zu starten wenn die WWT unter z.b. 54°C ist. Überheizen oder so kann meine WP nicht. -
@peter666666 ok und interessant. Meine WP könnte ich von extern dazu bringen, auf unterscheidliche Temperaturen zu erhitzen. Ist also ähnlich... Allerdings habe ich dazu noch keine Logik realisiert.
Für mich bleibt die Frage unter welchen Bedingungen die WP bis zu welcher Temperatur aufheizen soll? Was wären denn Deiner Meinung nach die Möglichen Parameter oder eine Beschreibung für eine "planbare Aufheizung"... s.o.